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属性を更新する必要があります。

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を取得する方法がわかりません。

ありがとう

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 に答える