不确定这是怎么回事,但它说该列不存在:
SQLite3 :: SQLException:没有这样的列: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
但是当我跑步时:
@form.answers.joins(:element).where(:element => {:kind => 6})
我得到上面的sql错误。不知道发生了什么事。对我缺少什么的想法?
谢谢!
仅供参考我使用ruby 1.9.3运行rails 3.2.3。
答案 0 :(得分:2)
该表格为elements
而不是element
由查询生成("element"."kind" = 6
)。
@form.answers.joins(:elements).where(:elements => {:kind => 6})
我原本希望查询的其余部分也可以使用不存在的element
表生成,因为您使用了.joins(:element)
而不是.joins(:elements)
,但是Rails可能在.joins()
内复数化1}}用于belongs_to
关联。
@form.answers.joins(:element).where(:elements => {:kind => 6})