【问题标题】:Rails has_many nested attributes + paperclip gemRails has_many 嵌套属性 + 回形针 gem
【发布时间】:2016-12-31 01:20:26
【问题描述】:

我有这个模型:

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>

当我在文档视图中创建文档时,该文档已创建,但是当我想在项目视图中创建文档属性时,它给了我这个错误:

ActiveRecord::Associations::CollectionProxy [] 的未定义方法“描述”

我做错了什么?

【问题讨论】:

  • :documents =&gt; [:id,:name,:description,:date,:local,:document] 应该是:documents_attributes =&gt; [:id,:name,:description,:date,:local,:document]

标签: ruby-on-rails ruby paperclip nested-forms


【解决方案1】:

在您的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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-22
    • 2012-03-10
    • 2012-11-10
    • 1970-01-01
    相关资源
    最近更新 更多