【发布时间】:2023-08-15 23:25:01
【问题描述】:
我正在为我正在使用的一个列出企业的应用程序构建一个管理部分。然后管理员可以进入并提交电子邮件地址并激活业务。所以我在这样的块中使用 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(来自路径)。
我做错了什么吗?你不应该使用一个块来生成多个相似的表单吗?
任何建议将不胜感激。
谢谢!
【问题讨论】:
-
您是否尝试过查看源代码以查看电子邮件输入的呈现方式?
-
我有,我觉得很好:
-
另外你为什么使用查询字符串来传递business_id?这绝对不是 Rails 方式。
-
@Ryan 这也不是 Rails 方式。您应该使用
/businesses/:business_id/activate作为表单的目标。查看生成的控制器并按照 Rails 的方式进行操作。如果您不打算遵循 Rails 约定,那么使用 Rails 真的没有意义。 -
啊,太好了,谢谢!我已经更新了我的路线以使其如此。我也弄清楚了导致问题的原因(请参阅下面的答案)
标签: ruby-on-rails ruby-on-rails-3 forms params