0
我想對模型的方法執行where()查詢。我如何做到這一點?Ruby on rails where()用方法
如果我做不到,有什麼辦法,我可以做到這一點:
Session.find_each.select do |session|
session.end_date > params[:date_from].to_date && session.end_date < params[:date_to].to_date
end
但不是返回數組的ActiveRecordRelation?
session.rb
class Session < ActiveRecord::Base
belongs_to :course
delegate :units, to: :course
def end_date
start_date + units.count.weeks
end
end
end_date
是方法,但start_date
是一個字段。
嘗試使用範圍在模型中看到:http://api.rubyonrails.org/classes/ActiveRecord/Scoping/Named/ClassMethods.html和http://guides.rubyonrails.org/active_record_querying.html#scopes –
我不明白這可以幫助我。 –
'嘗試這個,這會給你那些end_date介於date_from到date_to之間的會話,這個session_where(「end_date>?和end_date <?」,params [:date_from] .to_date,params [:date_to] .to_date)您還可以通過賦予符號分配來優化此查詢。 –