2012-02-22 23 views
1

我要提交一些信息,這些信息不是模型上欄,所以我使用的是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"} 
+0

你能發表你的日誌說什麼收到該請求? – 2012-02-22 23:23:42

+0

完成,請參閱文章。我看到一個空白字符串,如果我選擇了一些東西或保留默認選項(這只是第一個選擇) – 2012-02-22 23:30:33

+0

嗯,我能想到的是:檢查HTML,如果有任何其他具有相同名稱的元素'document.querySelectorAll '[name = category_name]')'因爲它可能覆蓋提交的值,用不同的瀏覽器測試(可能是一些奇怪的錯誤),嘗試創建一個複製錯誤的簡化測試用例... – 2012-02-22 23:46:33

回答

3

有可能是使用相同的名稱下的另一個字段,結束了寫下價值。

在您的js控制檯中檢查運行document.querySelectorAll('[name=category_name]')

+0

感謝您提供javascript選擇器。我試着用jQuery選擇器進行測試,結果只有一個。 – 2012-02-23 00:26:22

+0

我想+這一百萬次,非常感謝@Jakub Hampl這真的幫了我很多! – botbot 2012-06-29 04:37:44

2

而不是

select_tag :category_name

嘗試

f.select :category_name

+0

這是行不通的,因爲'category_name'不是'@ post'模型中的一列。 – 2012-02-22 23:45:34

相關問題