對於那些瞭解rails和sql的人來說,我正在尋找一些可以指向我的良好信息。我的查詢是非常相似的「加入嵌套協會」例如,在本節 - http://guides.rubyonrails.org/active_record_querying.html#using-array-hash-of-named-associations加入嵌套關聯,多級
我的模型(簡稱)如下,
User has_many :products # User is 'great-grandparent'
Product has_many :posts # Product is grandparent #1
Event has_many :posts # Event is grandparent #2
Post belongs_to :event
Post belongs_to :product
Post has_many :orders # Post is parent
Order belongs_to :post # Order is great-grandchild, grandchild, & child
我想從一個事件收集訂單用戶(賣方),這是我的最佳解決方案。
class Order < ActiveRecord::Base
def self.collect_for_seller_and_event(user_id, event_id)
self.joins(:post => [{:product => :user }, :event]).where(:post => [{:product => {:user_id => user_id}}, {:event_id => event_id}])
end
這個連接應該是什麼樣子?
我應該把它分解成菊花鏈上各種模型的範圍嗎?
只是爲了表明我這裏有一個基本的瞭解,我已經能夠得到我的第一份工作嵌套連接表中去(我對這個成績很興奮)
BuyerFeedback
belongs_to :order
def self.from_past_events
self.joins(:order => {:post => :event}).where(:order => {:post => {:event => {:date.lt => Date.today}}})
end