我在视图中有以下代码,用于编辑规范状态(已完成或未完成)。
%table
= form_for project_specification_path(@project,@specification), :method => :put do |f|
%tr
%td
= f.label :status, 'Status'
= f.select :status, ['Completed','Not completed']
%tr
%td
= f.submit 'Save'
点击“保存”后,在规格控制器的更新方法中,我需要更新@specification属性。
params看起来像这样:=> {"utf8"=>"✓",
"_method"=>"put",
"authenticity_token"=>"Wp2OSBaOCP9aIx27B0ZTnvuFtN0m4O45efDwdA5KB5Q=",
"/projects/1/specifications/1"=>{"status"=>"Completed"},
"Status"=>"Save status",
"action"=>"update",
"controller"=>"specifications",
"project_id"=>"1",
"id"=>"1"}
我需要编写类似@ specification.update_attributes(????)的内容,但我不知道如何从嵌套哈希中检索参数:status。
由于
答案 0 :(得分:1)
#form_for
的第一个参数应该是模型实例或符号模型名称,而不是路径。应使用:url => ...
选项提供自定义路径,例如......
= form_for :specification, :url => project_specification_path(@project,@specification), :method => :put do |f|
...