Rails has_many 嵌套属性 + 回形针 gem
Rails has_many nested attributes + paperclip gem
我有这个型号:
class Project < ApplicationRecord
acts_as_taggable
has_many :documents, dependent: :destroy
accepts_nested_attributes_for :documents
end
和这个模型:
class Document < ApplicationRecord
belongs_to :project,inverse_of: :document, dependent: :destroy
has_attached_file :document, styles: {thumbnail: "60x60#"}
validates_attachment :document, content_type: { content_type: "application/pdf" }
end
这是我对 projects_controller.rb
文件的方法:
def new
@project = Project.new
@project.documents.build
end
def project_params
params.require(:project).permit(:title, :resume, :documents => [:id,:name,:description,:date,:local,:document],
end
这是我对该项目的索引视图:
<td><%= project.title %></td>
<td><%= project.resume %></td>
<td><%= project.documents.name %></td>
<td><%= project.documents.description %></td>
<td><%= project.documents.date %></td>
<td><%= project.documents.local %></td>
<td><%= project.documents.document_file_name %></td>
<td><%= link_to 'Download', project.documents.document.url(:original, false) %> </td>
当我在文档视图中创建文档时,文档已创建,但是当我想在项目视图中创建文档属性时,出现此错误:
undefined method 'description' for ActiveRecord::Associations::CollectionProxy []
我做错了什么?
在 projects_controller.rb
文件中 project_params
方法将 :documents
更改为 :documents_attributes
:
def project_params
params.require(:project).permit(:title, :resume, :documents_attributes => [:id, :name, :description, :date, :local, :document])
end
我有这个型号:
class Project < ApplicationRecord
acts_as_taggable
has_many :documents, dependent: :destroy
accepts_nested_attributes_for :documents
end
和这个模型:
class Document < ApplicationRecord
belongs_to :project,inverse_of: :document, dependent: :destroy
has_attached_file :document, styles: {thumbnail: "60x60#"}
validates_attachment :document, content_type: { content_type: "application/pdf" }
end
这是我对 projects_controller.rb
文件的方法:
def new
@project = Project.new
@project.documents.build
end
def project_params
params.require(:project).permit(:title, :resume, :documents => [:id,:name,:description,:date,:local,:document],
end
这是我对该项目的索引视图:
<td><%= project.title %></td>
<td><%= project.resume %></td>
<td><%= project.documents.name %></td>
<td><%= project.documents.description %></td>
<td><%= project.documents.date %></td>
<td><%= project.documents.local %></td>
<td><%= project.documents.document_file_name %></td>
<td><%= link_to 'Download', project.documents.document.url(:original, false) %> </td>
当我在文档视图中创建文档时,文档已创建,但是当我想在项目视图中创建文档属性时,出现此错误:
undefined method 'description' for ActiveRecord::Associations::CollectionProxy []
我做错了什么?
在 projects_controller.rb
文件中 project_params
方法将 :documents
更改为 :documents_attributes
:
def project_params
params.require(:project).permit(:title, :resume, :documents_attributes => [:id, :name, :description, :date, :local, :document])
end