0

我在视图中有以下代码,用于编辑规范状态(已完成或未完成)。

%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 属性。

参数看起来像这样:

=> {"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 。

谢谢

4

1 回答 1

1

第一个参数#form_for应该是模型实例或符号模型名称,而不是路径。应使用该:url => ...选项提供自定义路径,因此类似于...

= form_for :specification, :url => project_specification_path(@project,@specification), :method => :put do |f|
  ...
于 2012-08-18T09:31:38.800 回答