我有三个模型:用户,图片,和喜欢
其中:
class Picture
include Mongoid::Document
embeds_many :likes
belongs_to :user
end
class User
include Mongoid::Document
has_many :pictures
has_many :likes
end
class Like
include Mongoid::Document
belongs_to :user
embedded_in :picture
end不,我想把喜欢的东西储存起来:
实现这三个要求的架构正确吗?
发布于 2012-09-07 14:00:09
首先,嵌入模型不能在其他地方引用,就像您已经尝试过在用户中引用like (已经嵌入在图片中)一样。
正确的模型结构将是
class Picture
include Mongoid::Document
has_and_belongs_to_many :likers, :class_name => "User", :inverse_of => nil
belongs_to :user
end
class User
include Mongoid::Document
has_many :pictures
end现在回答您的问题
# See how many likes have a picture
Picture.first.likers.count
# See how many likes a user has
# (assumption - will have only one like from one user for a specific picture)
Picture.where(:liker_ids => User.first).count
# See to what picture the user make a like?
Picture.where(:liker_ids => User.first).allhttps://stackoverflow.com/questions/12319407
复制相似问题