在Rails3中,我定义了2个模型,只有Item和Upload。 项目有许多具有多态关联的上传。
定义如下:
class Item
include MongoMapper::Document
include MongoMapper::AcceptsNestedAttributes
attr_accessible :uploads_attributes
belongs_to :category
many :uploads,:as => :picture_of
accepts_nested_attributes_for :uploads
key :name, String
key :description, String
validates_presence_of :name
timestamps!
end
class Upload
require 'carrierwave/orm/mongomapper'
include MongoMapper::EmbeddedDocument
attr_accessible :image,:remote_image_url
# belongs to Item, Event
# upload , just for photo
belongs_to :picture_of, :polymorphic => true
key :versions, Array
mount_uploader :image, ImageUploader
timestamps!
# for nested_attributes
def _destroy
end
end
尝试使用“上传”属性创建“项目”时,由于“验证失败”而失败。 我的定义有问题吗?
答案 0 :(得分:0)
您是如何尝试创建该项目的?告诉我们命令。
item = Item.create(...)
puts item.errors.messages
但是MongoMaper [1]不支持 NestedAttributes。你必须使用第三方插件,对吧?
如果您只使用NestedAttributes来显示漂亮的表单,那么您必须知道它与关系一起工作正常。
<%= form_for(@item) do |f| %>
...
<%= render 'upload_form', uploads: @item.uploads, form_parent: f %>
...
<% end %>
[1] https://groups.google.com/forum/#!topic/mongomapper/6Sw19uIwJoc(2010)