公司的has_many聯繫人如何計算和過濾Rails中的關聯記錄?
公司的has_many ContactEmails:通過=>:接觸
ContactEmail belongs_to的聯繫
聯繫belongs_to的公司
聯繫的has_many ContactEmails
對於公司的特定實例,我怎樣才能找到所有的ContactEmails和過濾屬性,如date_sent?
我試過Company.ContactEmails,但我不認爲它可以使該關聯。
公司的has_many聯繫人如何計算和過濾Rails中的關聯記錄?
公司的has_many ContactEmails:通過=>:接觸
ContactEmail belongs_to的聯繫
聯繫belongs_to的公司
聯繫的has_many ContactEmails
對於公司的特定實例,我怎樣才能找到所有的ContactEmails和過濾屬性,如date_sent?
我試過Company.ContactEmails,但我不認爲它可以使該關聯。
您可能希望爲此使用命名範圍。這適用於Rails 2.3,但對Rails 3來說不會有太大變化。
我還沒有測試過,但是像這樣的東西應該可以工作。這些條件可能需要調整以進行適當的日期比較。
ContactEmail < ActiveRecord::Base
named_scope :by_date_sent, lambda {|d| { :conditions => ["date_sent = ?", d]}}
end
@company.contact_emails.by_date_sent(Date.today)
至少2的方式來做到這一點的語義:
named_scope
作爲Beerlington曾建議(做正確的方式)。company.contact_emails.all(:conditions => ["date_sent = ?", d])
有趣......我不知道HAS_ONE:通過對Contactemails? – Angela 2010-10-07 03:46:14
嗯...你是對的....我沒有使用lambda命名作用域只是使用條件....我應該使用它嗎?想知道爲什麼searchlogic不會讓我做同樣的事情....你熟悉searchlogic嗎? – Angela 2010-10-07 03:49:32
我不太熟悉searchlogic,除了閱讀github自述文件以外。它似乎可以工作,但我沒有看到任何處理日期的例子。我遇到過爲此目的而使用它的人http://stackoverflow.com/questions/1829477/date-conditions-using-search-logic – 2010-10-07 04:25:34