我正在为一个列出企业的应用程序构建一个管理部分。然后,管理员可以进入并提交电子邮件地址并激活业务。所以我在一个块中使用form_tag,如下所示:
<% 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(来自路径)。
我做错什么了吗?你不应该使用一个块生成多个类似的表单吗?
任何建议都将不胜感激。
谢谢!
我想明白了。似乎大多数浏览器都不会传递表单的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>