我正在尝试在结果列表中呈现简单的复选框,以便用户可以选择从哪个结果中获取更多内容。
模型设置示例(名称更改):
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 }
现在,它在带有“未定义的方法'合并'”的复选框中失败。另外,不确定如何传递参数吗?我觉得我很认真地“脱离轨道”,并且可能把设计搞砸了,因为它看起来太复杂了……
有人会这么善良,并帮助我朝正确的方向发展吗,例如,您如何将响应传递给要求更多信息的方法?在线阅读吨,但由于某种原因无法应用。
非常感谢!