ruby-on-rails - Ruby on Rails:列表中每个项目的复选框
问题描述
我正在尝试在结果列表中呈现简单的复选框,以便用户可以选择这些结果中的哪一个来获取附加内容。
示例模型设置(名称已更改):
UserRequest has_one :response
Response has_many :individual_results
IndividualResult has_one :contact_info
在UserRequestsController
I have a show 操作中,它在表中显示了 user_request (duh)、response 和它的 individual_results。
用户应该能够选择项目 (= contact_info) 来请求这些项目的附加内容。出于某种原因,经过几天的尝试,我无法渲染复选框。基本上,我真的不明白在哪里以及如何存储所选数组contact_infos
以及如何将其传递给然后获取附加内容的方法。
我的尝试是:
- 创建一个
ContactInfosController
(以前不存在,用户现在只是创建和显示她的请求,所以contact_info 之前是“仅模型”) - 创建一个方法
request_content(contact_infos)
(作为帖子,将用户选择的contact_infos传递给。如果我让它成为Restful,它可能是“编辑/更新”) - 使用 check_boxes 添加表单
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 }
现在,它在“未定义方法‘合并’”的复选框处失败。另外,不确定如何传递参数?我觉得我严重“偏离了轨道”并且可能用这个搞砸了设计,因为它看起来太复杂了......
有人会这么好心并帮助我进入正确的方向,例如,您将如何将响应传递给请求附加信息的方法?在线阅读大量但不知何故无法应用它。
非常感谢!
解决方案
推荐阅读
- wordpress - 无法发送电子邮件。可能的原因:您的主机可能禁用了 mail() 功能
- c# - Windows 安全弹出窗口出现在主应用程序窗口后面
- python - 统计所有数据库中所有表中的所有行
- javascript - vue组件外的访问方法
- java - 原因:java.sql.SQLException:连接已关闭
- javascript - 我尝试使用 Js 和 CSS 创建选项卡,但它们不起作用
- python - 从 s3 Bucket 下载文件到 EC2 根路径
- node.js - Solidity:ParserError:预期的编译指示、导入指令或合同/接口/库定义
- android - RecyclerView 不显示项目
- mysql - 为什么 sqlite .dump 加密数据到 x'2384934..' 而不是原始数据?