在添加要设置的对象时不确定我做错了什么,我在下一行收到错误undefined method 'bson_type' for #<Favorite:0x007ffadd59ba48>
favorite = Favorite.new(
item_id: params[:item_id],
item_type: params[:item_type],
duid: params[:duid],
name: params[:name]
)
profile.add_to_set(favorites: favorite)
模型
class Favorite
include Mongoid::Document
embedded_in :profile
field :item_id, type: String
field :item_type, type: String
field :name, type: String
field :duid, type: String
end
class Profile
include Mongoid::Document
field :profile_id, type: String
field :name, type: String
field :image, type: String
embeds_many :favorites
end
答案 0 :(得分:1)
解决此问题的一种方法是使用:
favorite = Favorite.new(item_id: params[:item_id], ... yada yada)
favorite.profile = profile
favorite.save!
解决此问题的另一种方法是使用以下代码 - 我个人更喜欢 -
profile.favorites.create!( item_id: params[:item_id], ...yada yada )
额外信息可以是igonred
class Profile
...
embeds_many :favorites, cascade_callbacks: true
...
end
允许运行Favorite
模型中找到的回调