我有我的事件管理應用程序一個UserEvent類,以及用戶事件可以在事件發生的許多事件日期:如何在Rails中查詢與關聯的模型?
class UserEvent < ActiveRecord::Base
...
has_many :event_dates
...
end
的EVENTDATE類有一個user_event_date屬性:
class EventDate < ActiveRecord::Base
attr_accessible :user_event_date, :start_time, :end_time
belongs_to :user_event, inverse_of: :event_dates
...
end
我有一個搜索類,執行搜索時,find_user_events方法會過濾用戶事件,因此只有用戶事件保留其user_event_date位於搜索對象user_event_date_from和user_event_date_to屬性之間。
class Search < ActiveRecord::Base
attr_accessible :user_event_date_from, :user_event_date_to
private
def find_user_events
if user_event_date_from.present? || user_event_date_to.present?
time_range = user_event_date_from..user_event_date_to
user_events = UserEvent.joins(:event_dates).where(event_dates: {user_event_date: time_range})
end
end
但過濾器不起作用,所有記錄都會返回。我是從這個這個「其中」守則「對連接表指定條件」一節的Rails指南:
所以我的問題:
- 如何得到這個工作?
- 如果用戶僅指定user_event_date_from(user_event_date_to將是nil)將這項工作,作爲該範圍將是從user_event_date_from爲nil,或者我應該檢測到並設置的範圍內:user_event_date_from..user_event_date_from
由於提前!
作爲搜索的一部分,它們被隱式傳遞。它們應該在那裏,正如函數過濾機制的其他部分所看到的那樣,它以類似的方式訪問其他搜索屬性:user_events = user_events.where(state_id:state_id)if state_id.present? user_events = user_events.where(postal_code:postal_code)if postal_code.present? –
老兄再次..如何設置user_event_date_from和user_event_date_to的值? – beck03076
我們無法爲您調試您的應用程序,因爲我們沒有您的應用程序。此外,您沒有回答我的任何調試建議。在'find_user_events'方法中,從'user_event_date_from'和'user_event_date_to'的值向後工作,我相信你會解決它。 –