我正在构建一个建立在Active Admin之上的应用程序。我的想法是拥有一个可以使用类似CMS的界面控制和更新/编辑的后端。从那里开始,我正在为我在Active Admin中控制的数据构建API。使用该API,我在前端使用Angular.js显示它。
我遇到的问题是使用Paperclip。图片/图像对于这个项目非常重要,能够从回形针访问数据同样重要。
当前的问题是我在网站的管理部分。我设置了2个主要部分,Project
和Member
。我设置了各种字段,一切正常,我能够生成API。然后我添加了图片,一切都破了。这是我目前的设置;
project.rb (项目有多个图片)
class Project < ActiveRecord::Base
has_many :images
end
member.rb (有1张图片)
class Member < ActiveRecord::Base
has_one :image
end
image.rb
class Image < ActiveRecord::Base
belongs_to :member
belongs_to :project
# PaperClip
has_attached_file :image, :styles => { :small => "100x100", :medium => "200x200", :large => "300x300" },
:url => "/path/to/images/url",
:path => ":path/to/images"
validates_attachment :image, content_type: { content_type: ["image/jpg", "image/jpeg", "image/png"] }
accepts_nested_attributes_for :member, :project
端
我得到的当前错误是;
ActiveRecord::UnknownAttributeError (unknown attribute: image)
这是在获得后改变了一些东西;
Paperclip::Errors::MissingRequiredValidatorError (Paperclip::Errors::MissingRequiredValidatorError):
我已经运行了迁移,更改了迁移,乱搞了一堆其他资源,而且我仍然不知道导致问题的确切原因。看起来它可能是几个不同的东西,我试图实现这些修复,但它总是只是导致我另一个错误或只是导致一个循环。
任何帮助将不胜感激。无论如何,我可以发布更多代码。
答案 0 :(得分:0)
您必须将accepts_nested_attributes_for :images, :allow_destroy => true
放在Project和Member类中。
而且您还必须允许ActiveAdmin模型中的图像:
permit_params images_attributes: [:id, :image, :_destroy]
当您根本不验证附件时会发生什么?