1

奇妙なレール3.2の問題があります。このようなフォームを送信すると:

<%= form_for @job, :url => job_preview_path do |f| %>
<dl>
  <dt><%= f.label :job_title, "Job Titel" %></dt>
  <dd><%= f.text_field :job_title %></dd>
  <dt>Checkbox please!</dt>
  <dd><%= f.check_box :extra_featured %> </dd>
</dl>
<%= f.submit "Submit" %></p>
<% end %>

ここで、アクションルートは次のように定義されます。

match 'job/preview' => 'jobs#preview', :as => :job_preview, :via => :post

POSTパラメータの値は、check_box値を除いて、送信後も空のままです。送信後のコントローラーのアクションで、パラメーターをモデルに再割り当てしたので、パラメーターを再利用してエントリを保存できます。

def preview
  @job = Job.new(params[:job])
end

この奇妙な行動について何かアドバイスはありますか?私は盲目で、バグが表示されませんか?

4

1 に答える 1

2

Rails 3.2.3を使用していますか?Rails3.2.3からActiveRecordへの変更の1つは、「デフォルトですべての属性割り当てをホワイトリストに登録する」ことです。[ANN]を参照してください。Rails3.2.3がリリースされました。

于 2012-04-14T14:24:21.640 に答える