我的應用程序使用Users
,Stories
,Competitions
和Submissions
模擬了一個寫作競賽。在Rails中查詢多個關聯的正確方法是什麼?
用戶可以通過提交或作爲所有者參加比賽。我想要一個查詢或方法返回用戶擁有或參與的所有比賽。我有一個方法返回數組,competitions | owned_competitions
,但我真的想讓他們ActiveRecord實體,以便我可以鏈接,應用示波器等。
有沒有辦法做到這一點,或更好建立這些關係的方法?
我的模式是這樣的:
user.rb:
has_many :stories
has_many :submissions
has_many :competitions, :through => :submissions
has_many :owned_competitions, :class_name => "Competition"
story.rb:
belongs_to :user
has_many :submissions
has_many :competitions, :through => :submissions
competition.rb:
belongs_to :owner, :class_name => "User", :foreign_key => 'user_id'
has_many :submissions
has_many :competitors, :through => :submissions, :source => :user
has_many :stories, :through => :submissions
scope :expiring_today, lambda { where("deadline = ?", Date.today) }
submission.rb :
belongs_to :user
belongs_to :story
belongs_to :competition
爲什麼downvotes?我搜索了大約40個其他問題,試圖瞭解最佳實踐並沒有解決它... – Heliostatic