首页 > 解决方案 > Ruby on Rails:列表中每个项目的复选框

问题描述

我正在尝试在结果列表中呈现简单的复选框,以便用户可以选择这些结果中的哪一个来获取附加内容。

示例模型设置(名称已更改):

UserRequest has_one :response
Response has_many :individual_results
IndividualResult has_one :contact_info

UserRequestsControllerI have a show 操作中,它在表中显示了 user_request (duh)、response 和它的 individual_results。

用户应该能够选择项目 (= contact_info) 来请求这些项目的附加内容。出于某种原因,经过几天的尝试,我无法渲染复选框。基本上,我真的不明白在哪里以及如何存储所选数组contact_infos以及如何将其传递给然后获取附加内容的方法。

我的尝试是:

我的search_request/show.html.erb

<tbody>
  <% if @response %>
    <% form_for @contact_infos, url: contact_infos_request_content_path(@contact_infos) do |form| %>
      <% @response.individual_results.each do |result| %>
        # result.foo, ...
        # result.contact_info.bar
        <%= form.check_box "contact_info", "contact_info.request_content?", "true", "false %>
      <% end %>
      # form.submit
    <% end %>
  <% end %>
</tbody>

由于它不起作用,我还必须将实例变量声明@contact_infosRequestsController#show@contact_infos = @response.individual_results.map { |r| r.contact_info }

现在,它在“未定义方法‘合并’”的复选框处失败。另外,不确定如何传递参数?我觉得我严重“偏离了轨道”并且可能用这个搞砸了设计,因为它看起来太复杂了......

有人会这么好心并帮助我进入正确的方向,例如,您将如何将响应传递给请求附加信息的方法?在线阅读大量但不知何故无法应用它。

非常感谢!

标签: ruby-on-railsrubyformscheckbox

解决方案


推荐阅读