Я хочу выполнить запрос 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 –
Я не вижу, как это может мне помочь. –
'Session.where (" end_date>? And end_date ", Params [: date_from] .to_date, params [: date_to] .to_date)' try this, это даст вам те сеансы, у которых end_date находится между date_from до date_to, вы также можете оптимизировать этот запрос, указав символическое назначение. –