Возникли проблемы с поиском activerecord.Я думал, что правильно настроил свои модели, но я плохо справляюсь со своими объединениями (не уверен, что объединение или объединение - правильный путь? Это не должно быть так сложно).
У меня есть инструкции по созданию ставок в поездках с начальными датами.Я хочу создать список ставок, срок действия которых истек (т.е. дата начала уже в прошлом).Направляющие также могут иметь LosingBids, если ставка была отклонена
. В идеальном мире у меня был бы один набор результатов, который включает в себя как проигрышные, так и истекшие ставки для этого руководства, но я нахожу с 2 разными наборами результатов.К сожалению, я не могу заставить работать ни одну из «просроченных заявок».Результаты / ошибки в комментариях к коду.
class GuidesController < ApplicationController
def expired_declined
#this declined_bids call works
@declined_bids = LosingBid.where("guide_id = ?", current_guide.id.to_s)
#this expired_bids call returns Trips, not Bids
@expired_bids = Bid.where("guide_id = ?", current_guide.id.to_s).expired
#this expired_bids call gives me the following error:
#SQLite3::SQLException: no such column: trips.start_date: SELECT 1 AS one FROM #”bids" WHERE (guide_id = '1') AND (trips.start_date < '2018-05-30') LIMIT ?
@expired_bids = Bid.where("guide_id = ?", current_guide.id.to_s).where("trips.start_date < ?", Date.today)
end
end
class Guide < ApplicationRecord
has_many :bids
has_many :losing_bids
end
class Trip < ApplicationRecord
has_many :bids
end
class Bid < ApplicationRecord
belongs_to :trip
belongs_to :guide
def self.expired
Trip.where("start_date <= ?", Date.today) #.where("guide_id = ?", current_guide.id.to_s)
end
end
class LosingBid < ApplicationRecord
belongs_to :trip
belongs_to :guide
end