1

我有一个奇怪的 rails 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 上吗?Rails 3.2.3 对 Active Record 的更改之一是“默认将所有属性分配列入白名单”。请参阅[ANN] Rails 3.2.3 已经发布!

于 2012-04-14T14:24:21.640 回答