2011-06-10 63 views
0

我正在爲我正在工作的應用程序建立一個管理部分列出業務。然後管理員可以進入並提交電子郵件地址並激活業務。所以我使用的form_tag塊中,像這樣:Rails 3表單字段不提交參數

<% for business in @businesses %> 
<tr> 
    <td align="center" class="border-table"><%= business.id %></td> 
    <td align="center" class="border-table"><%= business.name %></td> 
    <td align="center" class="border-table"><%= business.address %></td> 
    <td align="center" class="border-table"><%= business.phone %></td> 
    <% @user = User.new %> 
    <%= form_tag "/businesses/activate?business_id=#{business.id}", :remote => true, :method => :put do %> 
     <td align="center" class="border-table" id="<%= business.id %>_email"><%= text_field_tag "email", nil, :placeholder => "email" %></td> 
     <td align="center" class="border-table" id="<%= business.id %>_activate"><%= submit_tag "Activate" %></td> 
    <% end %> 
    </tr> 
<% end %> 

所以給定的管理頁面上有這些形式,一爲表中的每行25。

問題是,無論什麼原因,「電子郵件」參數沒有被髮布,只是business_id(來自路徑)。

有什麼我做錯了嗎?你不應該使用塊生成多個類似的表單嗎?

任何意見將不勝感激。

謝謝!

+1

您是否嘗試過收視源,查看電子郵件輸入是如何被呈現? – meagar 2011-06-10 03:01:33

+0

我有,它看起來對我很好: goddamnyouryan 2011-06-10 03:05:19

+0

此外,爲什麼你使用查詢字符串傳入business_id?這絕對不是* Rails方式。 – meagar 2011-06-10 03:06:34

回答

-1

我想通了。似乎大多數瀏覽器將無法通過一種形式的PARAMS除非它​​是<td>像這樣裏面:

<td align="center" class="border-table" id="<%= rep.id %>_email"> 
    <%= form_tag activate_rep_path(rep.id), :remote => true do %> 
    <%= text_field_tag "email", nil, :placeholder => "email", :index => rep.id %></td> 
<td align="center" class="border-table" id="<%= rep.id %>_activate"> 
    <%= submit_tag "Activate" %> 
    <% end %> 
</td> 
+0

真的不知道爲什麼這是downvoted。我更新了它,包括RAILS WAY路徑 – goddamnyouryan 2011-06-10 03:32:49

+3

在兩個tds之間打包表單(打破HTML標記的嵌套!)是不好的。如果表格包裝整個表格會更好。否則你應該考慮重構你的html結構。 – PeterWong 2011-06-10 03:34:34