Ruby on Rails:列表中每个项目的Check_boxes

时间:2018-07-23 20:24:33

标签: ruby-on-rails ruby forms checkbox

我正在尝试在结果列表中呈现简单的复选框,以便用户可以选择从哪个结果中获取更多内容。

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

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

UserRequestsController中,我有一个show动作,该动作在一个表中显示user_request(duh),响应及其个体结果。

用户应该能够选择项目(= contact_info)来请求其他内容。由于某些原因,经过数天的尝试,我无法呈现出check_boxes。基本上,我不太了解所选的contact_infos数组的存储位置和方式,以及如何将其传递给获取附加内容的方法。

我的尝试是:

  • 创建一个ContactInfosController(以前不存在,用户直到现在才创建并显示她的请求,因此contact_info以前是“仅模型”)
  • 创建方法request_content(contact_infos)(发布后,将用户选择的contact_infos传递给该方法。如果我要使它变得Restful,则可能是“编辑/更新”)
  • 添加带有复选框search_request#show的表单

我的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_infos中将实例变量RequestsController#show声明为@contact_infos = @response.individual_results.map { |r| r.contact_info }

现在,它在带有“未定义的方法'合并'”的复选框中失败。另外,不确定如何传递参数吗?我觉得我很认真地“脱离轨道”,并且可能把设计搞砸了,因为它看起来太复杂了……

有人会这么善良,并帮助我朝正确的方向发展吗,例如,您如何将响应传递给要求更多信息的方法?在线阅读吨,但由于某种原因无法应用。

非常感谢!

0 个答案:

没有答案