Ambiguous column name in Ruby on Rails with SQLite database? -
i getting error in rails app:
activerecord::statementinvalid in paymentscontroller#index sqlite3::sqlexception: ambiguous column name: date: select count(*) "payments" inner join "invoices" on "payments"."invoice_id" = "invoices"."id" "invoices"."user_id" = 1 , (date >= '2013-01-01' , date <= '2013-12-31')
the problem seems have date
field in invoices
payments
table.
yet still don't know how fix error.
class user < activerecord::base def number_of_payments_in(year) payments.where("payments.date >= ? , payments.date <= ?", "#{year}-01-01", "#{year}-12-31").count end end
class payment < activerecord::base def self.search(year) if year where("date >= ? , date <= ?", "#{year}-01-01", "#{year}-12-31") end end end
can help?
this answer may bit vague it's not clear question class self.search(year)
method in, let me know if doesn't , can try , go further.
my guess that, unlike in number_of_payments_in
method, in self.search
method haven't specified appropriate table in where
call.
in number_of_payments_in
, specify payments.date
, in self.search
use date
. said have date
field in invoices
payments
table, join call across both tables need every reference date
scoped table.
adding appropriate table in front of date
in self.search
(as have done in number_of_payments_in
) may solve problem.
Comments
Post a Comment