【问题标题】:Rails POST params empty after submit?提交后Rails POST参数为空?
【发布时间】:2012-04-14 10:19:32
【问题描述】:

我有一个奇怪的 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

对这种奇怪的行为有什么建议吗?我是不是瞎了,没看到bug?

【问题讨论】:

  • 查看渲染的 html 并确保标题文本字段的 html 名称正确。

标签: ruby-on-rails ruby-on-rails-3 forms


【解决方案1】:

您使用的是 Rails 3.2.3 吗? Rails 3.2.3 对 Active Record 的更改之一是“默认将所有属性分配列入白名单”。见[ANN] Rails 3.2.3 has been released!

【讨论】:

  • 所以我查看了它并且无法修复错误。它没有分配任何 post 参数...
  • 你检查过日志吗?应打印出 post 参数。或者您可以检查 params[:job] 是否有任何数据。
  • 我能想到两个可能的原因,1)浏览器没有发送数据,2)Rack解析数据失败。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
  • 2017-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多