cbr*_*hli 5 activerecord ruby-on-rails data-modeling mongodb mongoid
我正在尝试使用MongoDB作为数据库创建一个事件平台.我希望Events和之间有多对多的关系Users.问题是,我希望在关系中有属性(例如,Users可以确认或未确认具体Event).我意识到这将非常适合RDBMS,但我使用MongoDB的原因是我在其他地方利用它,我宁愿继续使用它.
我希望每个人Event都能嵌入许多Guests属于的人Users.这样,我可以看到哪些用户快速参加了一个事件并且只有一个查询.不过,我也想看看这Events一个User迅速出席,所以我想每一个User有数组EventIDS.
这是一个代码摘要.
# user of the application
class User
has_many :events
end
# event that users can choose to attend
class Event
embeds_many :guests
has_many :users, :through => :guests # Won't work
end
# guests for an event
class Guest
field :confirmed?, type: Boolean
embedded_in :event
belongs_to :user
end
# Ideal use pattern
u = User.create
e = Event.create
e.guests.create(:user => u, :confirmed => true)
Run Code Online (Sandbox Code Playgroud)
有了理想的使用模式,e有Guest一个参考u和u参考e.
我知道这has_many :through条线不起作用.有关如何获得类似功能的任何建议?我正在考虑使用after_create回调Guest来添加对Eventin 的引用User,但这似乎非常hacky.
也许我走错了路.建议?谢谢.
| 归档时间: |
|
| 查看次数: |
4467 次 |
| 最近记录: |