これは私のモデルです:
class Book < ActiveRecord::Base
attr_accessible :author, :title
validates :author, presence: true
validates :title, :uniqueness => true, presence: true
has_many :rentals
def rent?
rentals.where(return_date: nil).count > 0
end
end
class Rental < ActiveRecord::Base
belongs_to :student
belongs_to :book
validates :student, presence: true
validates :book, presence: true
validates :rental_date, presence: true
attr_accessible :rental_date, :return_date, :student, :book
def pending?
return return_date == nil
end
def overdue?
if(return_date)
return_date - rental_date > 7.days
else
Time.now - rental_date > 7.days
end
end
end
レンタルされていないすべての書籍を照会したい (つまり、return_date のないこの書籍のレンタルはありません)。
「家賃?」を使えると思った。方法ですが、うまくいかなかったので、結合しようとしました。
これは私が得たものです:
Book.includes(:rentals).find(:all, :conditions => ['"rentals"."return_date" is NULL'])
しかし、パラメータに基づいて where クエリをいくつか追加したいと考えています。
どうすればこれを達成できますか?