我希望能够从模型(轨道4)查看记录,并使用复选框选择将通过电子邮件发送的项目。我正在使用回形针附件,尽管这可能并不重要。
我在我的索引中添加了checkbox_tag
<tbody>
<% form_tag %>
<% @documents.each do |document| %>
<tr>
<td><%= document.title %></td>
<td><%= document.doc_file_file_name %> </td>
<td><%= check_box_tag("to_email[]", 'document.id') %></td>
据我了解,这应该给我留下一个名为to_email的数组,其中包含我要附加到电子邮件的文件的ID。我提交了
<%= submit_tag "Edit Checked" %>
我知道我在form标签和submit_tag的语法方面存在一些问题。我试图让被检查的项目显示在名为预览的视图上。我有一条路线设置为
get 'email/preview' => 'documents#email_preview_list_documents', as: 'preview'
如果我通过复选框将值输入数组,我该如何使用它来过滤记录?
我添加了所选的更改,现在正在进行
NoMethodError in Documents#email_preview_list_documents
Showing C:/Users/cmendla/RubymineProjects/technical_library/app/views/documents/email_preview_list_documents.html.erb where line #9 raised:
undefined method `each' for nil:NilClass
Rails.root: C:/Users/cmendla/RubymineProjects/technical_library
NoMethodError in Documents#email_preview_list_documents
NoMethodError in Documents#email_preview_list_documents
答案 0 :(得分:2)
应用/控制器/ documents_controller.rb 强>
self.mapView.basePredicate = NSPredicate(format: "name BEGINSWITH 'A'")
应用/视图/文档/ email_preview_list_documents.html.erb 强>
class DocumentsController < ApplicationController
def email_preview_list_documents
# it includes checkbox name into params
@to_email = params[:to_email]
end
end
答案 1 :(得分:0)
您似乎必须在@documents
方法中确定email_preview_list_documents
。尝试这样做:
def email_preview_list_documents
@documents = Document.all
end
我希望这对你有所帮助。
答案 2 :(得分:0)
由于回复和其他一些研究,我终于得到了这个工作。
在documents / index.html.erb中,我添加了
<%= form_tag preview_path do %>
. . .
<td><%= check_box_tag "document_ids[]", document.id %></td>
. . .
<%= submit_tag "Edit Checked" %>
在文件控制器中,我添加了
def index_multiple
@documents = Document.find(params[:document_ids])
在routes.rb中,我添加了
match 'email/preview', to: 'documents#index_multiple', via: [:get, :post ], as: 'preview'
这允许我查看索引,检查我想要的项目,然后将它们显示在新页面上。 Document.find将比较复选框中文档的ID与数组的ID,并仅显示已检查的文档。