ネストされたリソースでカテゴリのサブカテゴリを作成しようとしています。私が持っている問題は、それが動作していないようです。私が得るのはundefined method
sub_category_path for#<#:0x007f8fcde33550> どういう意味ですか? new_category_path swell as
フォームの最初の値をnilにすることはできません。次のようにネストされたリソースレールの作成と編集5
私のコントローラメソッドは、次のとおりです。
サブカテゴリ更新:
@category = @subcategory.category.id
if @subcategory.update(subcategory_params)
flash[:success] = "Subcat name updated"
redirect_to category_sub_category_path(@subcategory)
else
render 'edit'
end
サブカテゴリ新しい:
@category = Category.find(params[:category_id]) # TODO:subcategory.category.id?
@category_sub = @category.sub_categories.new
#@subcategory = @category.sub_categories.new
サブカテゴリが作成:
@subcategory = SubCategory.new(subcategory_params)
if @subcategory.save
flash[:success] = "subcategory created"
redirect_to category_sub_category_path
else
flash[:error] = "subcategory failed"
render 'new'
end
そして、私のプライベートを方法:私のSubCategory show.html.erb
で
<%@categories.each do |c|%>
<ul class="listing">
<div class="row">
<div class="well col-md-4 col-md-offset-4">
<li class="article-title">
<strong><%= link_to "#{c.name}", category_path(c)%></strong>
<% c.sub_categories.each do |s|%>
<div>
<%=link_to s.name, category_sub_category_path(c,s)%>
</div>
<%end%>
</li>
<li><small>
<!--Pluralise here-->
</small></li>
</div>
</div>
</ul>
<%end%>
そして:私は、サブカテゴリのインデックスを持っていない
private
def set_sub_category
@subcategory = SubCategory.find(params[:id])
end
def subcategory_params
params.require(:sub_category).require(:name, :category_id)
end
end
、サブカテゴリの視聴がここで見ることができCategories index.html.erb
内のリンクをクリックするとオフに基づいています。
<span class ="badge"><%= link_to "Edit sub category name",
edit_category_sub_category_path([@category, @subcategory])%></span>
そして、私のSubCategory edit.html.erb
中:
<%=form_for([@category, @subcategory], :html => {class: "form-horizontal", role: "form"})do |f|%>
<div class="form-group">
<div class="control-label col-sm-2">
<%= f.label :subcategory%>
</div>
<div class="col-sm-8">
<%= f.text_field :name, class: "form-control", placeholder: "Update Sub Category", autofocus: true%>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<%=f.submit class: "btn btn-primary btn-lg"%>
</div>
</div>
<%end%>
すべてのヘルプは
EDITいただければ幸いです。今、このエラー
を取得していますエラーを
{"utf8"=>"✓", "_method"=>"patch", "authenticity_token"=>"81lwz0NufTqdOni+4wPRO4Vnmeis9f32+sqSNsxTXZY7ufyR8hTvF86KQwdMjcOP2DQJibK66croW48Uhos9+A==", "sub_category"=>{"name"=>"Gold", "category_id"=>"1"}, "commit"=>"Update Sub category", "category_id"=>"1", "id"=>"1"}
引数の数が間違っ
def
subcategory_params params.require(:sub_category).require(:name, :category_id)
end
(2与えられたが、1を期待する)ので、
固定:私は、これはエラーの原因となっていnilをあなたはコメントで述べたように
エラーのスタックトレースを表示できますか? –
'@category、@ subcategory'の1つはnilと思われます。コントローラのサブカテゴリの編集アクションを投稿することができます。 –
@BalaKarthik編集アクションはちょうどsubcategory = SubCategoryです。私はbefore_actionを持っているので、find(params [:id]):set_sub_category – Jack