表单中的select_tag始终提交空白字符串

时间:2012-02-22 23:17:41

标签: ruby-on-rails forms

我想提交一些不是模型列的信息,所以我使用的是select_tag:

= form_for [:admin, @post] do |f|
  = f.error_messages

  %p
    = select_tag :category_name, options_from_collection_for_select(Category.all, :id, :category_name)
  ...

它会生成看起来正确的html:

<form id="edit_post_1" class="edit_post" method="post" action="/admin/admin_posts/1" accept-charset="UTF-8">
<div style="margin:0;padding:0;display:inline">
<p>
<select id="category_name" name="category_name">
<option value="6">City</option>
<option value="7">College</option>
<option value="8">Sports</option>
<option value="9">Work</option>
</select>
</p>
<p>
<label for="subcat_prefix">Subcategory Name</label>

但是Rails控制器总是在params中看到"category_name"=>"",。我错过了一些明显的东西,但是什么?

编辑:服务器登录提交:

Started POST "/admin/admin_posts/1" for 127.0.0.1 at 2012-02-22 15:06:52 -0800
  Processing by Admin::AdminPostsController#update as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"CmG+YPFuaKfg+liipxJI6PKQHmbdJ4m2VtJmeD2dRqk=", "post"=>{"subcat_prefix"=>"In", "subtopic_name"=>"City perferendis", "post_content"=>"Explicabo dolor totam fuga voluptatem nam voluptatibus voluptatibus beatae aliquam ducimus et voluptate deleniti dignissimos et. Eum ipsam quos quo voluptas laboriosam delectus adipisci veniam similique libero eaque dolor dolorem libero autem ex aliquam non"}, "category_name"=>"", "commit"=>"Update Post", "id"=>"1"}

2 个答案:

答案 0 :(得分:3)

可能有另一个名称相同的字段会覆盖该值。

在js控制台中运行document.querySelectorAll('[name=category_name]')进行检查。

答案 1 :(得分:2)

而不是

select_tag :category_name

f.select :category_name