我要提交一些信息,這些信息不是模型上欄,所以我使用的是select_tag: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控制器總是在參數中看到"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"}
你能發表你的日誌說什麼收到該請求? – 2012-02-22 23:23:42
完成,請參閱文章。我看到一個空白字符串,如果我選擇了一些東西或保留默認選項(這只是第一個選擇) – 2012-02-22 23:30:33
嗯,我能想到的是:檢查HTML,如果有任何其他具有相同名稱的元素'document.querySelectorAll '[name = category_name]')'因爲它可能覆蓋提交的值,用不同的瀏覽器測試(可能是一些奇怪的錯誤),嘗試創建一個複製錯誤的簡化測試用例... – 2012-02-22 23:46:33