2016-12-31 55 views
0

我有這樣的模式:導軌的has_many嵌套屬性+回形針寶石

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 []

我在做什麼錯?

+0

':文件=> [:ID,:名稱,:說明:日期,:本地,:文件]'應該是' :documents_attributes => [:id,:name,:description,:date,:local,:document]' – Thanh

回答

3

在你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