您好,我正在从事Rails项目。它是一个从电话簿(索引视图)中选择联系人列表并将文本仅发送到选定对象的项目。因此,我想在索引视图中引入一个复选框,该复选框选择一些联系人并将此数据发送到我的控制器。我对此有任何帮助吗?
答案 0 :(得分:0)
对复选框使用multiple
选项。
f.check_box :checked, {multiple: true}, value, nil
通过使用Multiple选项,参数可以具有数组值。您可以将默认值放在第四个参数中,但是只要不需要任何特定操作,nil就可以。
可以多次调用此check_box标记,只能通过params获取选中的值。
checked_values = params[:checked]
也许在您的情况下,将联系人ID设置为复选框值,基于该ID从模型中获取记录,并执行以下处理。
编辑:
为回应评论,这是一个示例。
如何在索引视图中显示包括复选框在内的所有内容?
根据设计模式,索引操作将具有联系人列表。我不理解您的项目,但我认为该项目具有Contact
模型。
def index
@contacts = Contact.limit(20)
end
然后使用@contacts
和check_box呈现索引视图。
<%= form_for :contacts, url: {action: :send}, html: {method: :post} do |f| %>
<% @contacts.each do |contact| %>
<div>
<%= f.check_box :checked, {multiple: true}, contact.id, nil %>
<%= "name: #{contact.name}, phonenumber: #{contact.phonenumber}" %>
</div>
<% end %>
<%= f.submit 'Submit' %>
<% end %>
由于假定此表单会将数据发送到send
动作,所以send
的实现如下。
def send
# fetch checked id and find record from model
checked_ids = params[:contacts][:checked]
contacts = Contact.where(id: checked_ids)
# add your code
end
当然这只是一个示例,请参考并为您自己的项目实施。