【发布时间】:2014-08-09 11:30:00
【问题描述】:
Rails 调试器显示的参数
{"utf8"=>"✓",
"authenticity_token"=>"m2NMruoFRr6lpsuVMK9UthlY0bsJsPmf1LWce2uKaH4=",
"signup_id"=>"5",
":item_name"=>["Electric drill",
"Screwdriver set"],
"commit"=>"Go!"}
但控制器创建方法不断出错:
undefined method `each' for nil:NilClass` on the `params[:item_name]
来自控制器:
def create
params[:item_name].each do |item|
item = @signup_parent.inventories.build(inventory_params)
end
end
def inventory_params
params.require(:inventory).permit(:signup_id, {:item_name => []})
end
更新的控制器代码(请参阅下面的评论线程,仍然无法正常工作,但希望越来越接近)
def create
params[":item_name"].each do |item|
item = @signup_parent.inventories.build(inventory_params)
end
end
def inventory_params
params.permit(:signup_id, {:item_name => []})
end
查看代码 sn-p 以防有帮助:
<%= check_box_tag ":item_name[]", "#{thing}" %>
<%= hidden_field_tag :signup_id, "#{Signup.find_by_email(session[:signup_email]).id}" %>
【问题讨论】:
标签: ruby-on-rails forms checkbox parameters