【发布时间】:2012-10-16 12:12:33
【问题描述】:
这是我的表单,其中显示了管理员尚未审核的所有 feedbacks:
我在每个 feedback 旁边有 2 个单选按钮,用于选择接受或拒绝值 1 或 2。
<% form_tag moderate_feedbacks_path, :method => :put do %>
<table>
<% @all_feedbacks.each do |feedback| %>
<tr>
<td><%= radio_button_tag :review_option, '1', false, :name => feedback.id %></td>
<td><%= radio_button_tag :review_option, '2', false, :name => feedback.id %></td>
<td><%= feedback.name %></td>
<td><%= feedback.email %></td>
<td><%= feedback.message %></td>
</tr>
<% end %>
</table>
<%= submit_tag 'Apply' %>
<% end -%>
我想要做的是当我单击submit_tag 时,将每个选定feedback 的review_option 字段更新为radio_button_tag、1 或2 的值
我现在有你看到的表格,效果很好,但我卡在控制器部分:
def moderate_feedbacks
Feedback.update_all(["review_option = ?", ????])
redirect_to admin_feedbacks_path
end
如何将这些单选按钮的参数传递给控制器。 谢谢。
附言 html 来源:
<input id="review_option_1" name="3" type="radio" value="1">
<input id="review_option_2" name="3" type="radio" value="2">
名称取自feedback.id
按下 submit_tag 时的日志如下所示;
Processing Admin::FeedbacksController#moderate_feedbacks (for 127.0.0.1 at 2012-10-16 15:36:20) [PUT]
Parameters: {"commit"=>"Apply", "3"=>"2", "4"=>"1"}
其中 3 是反馈的 id - 2 是单选值,4 是反馈的 id - 1 是单选值
raise.params["feedback.is"].inspect之后
Parameters:
{"commit"=>"Apply",
"3"=>"1",
"4"=>"1",
"_method"=>"put"}
【问题讨论】:
-
您的参数哈希看起来如何?您可以粘贴表单提交的服务器日志吗?我认为您必须在参数中传递所有反馈对象的 ID,循环并单独更新每个反馈。这是一项昂贵的操作。我希望有更好的方法来做到这一点。
-
谢谢,我会粘贴 html 文件的视图源代码,因为这是一个旧的 rails 2.2 应用程序,我使用脚本/服务器而不是乘客运行它。所以很难找到日志。我会粘贴 html 并立即查找日志
-
好的,添加了日志,我希望这是你要找的部分
标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2