Not sure how this is happening but it’s saying the column doesn’t exist:
SQLite3::SQLException: no such column: element.kind: SELECT COUNT(*) FROM “answers” INNER JOIN “elements” ON “elements”.”id” = “answers”.”element_id” WHERE “answers”.”form_id” = 55 AND “element”.”kind” = 6
# element.rb
class Element < ActiveRecord::Base
has_many :answers
end
# answer.rb
class Answer < ActiveRecord::Base
belongs_to :element
belongs_to :form
end
class Form < ActiveRecord::Base
has_many :answers
end
But when I run:
@form.answers.joins(:element).where(:element => {:kind => 6})
I get the sql error above. Not sure what’s going on. Any thoughts on what I’m missing?
Thanks!
FYI I’m running rails 3.2.3 with ruby 1.9.3.
The table is
elementsrather thanelementas generated by the query ("element"."kind" = 6).I would have expected the rest of the query to be generated using the nonexistent
elementtable as well, since you used.joins(:element)instead of.joins(:elements)but perhaps Rails is pluralizing inside.joins()for abelongs_toassociation.