表格
声明 belongs_to 城镇
模型
外键不遵循惯例,因为它更清晰,我将来应该与同一个表有多个关系。
class Claim < ActiveRecord::Base
belongs_to :risk_town, class_name: "Town"
end
查询
当我尝试通过城镇邮政编码过滤索赔时,我使用此查询:
Claim.joins(:risk_town).where(risk_town:{postal_code:70000})
出现此错误
ActiveRecord::StatementInvalid: SQLite3::SQLException: no such column: risk_town.postal_code
SELECT "claims".* FROM "claims" INNER JOIN "towns" ON "towns"."id" = "claims"."risk_town_id" WHERE "risk_town"."postal_code" = ? [["postal_code", "70000"]]
我不明白为什么导轨不能用于别名&#34;城镇&#34;匹配我的关系名称&#34; risk_town&#34;。
这种情况有哪些解决方法?
由于
答案 0 :(得分:3)
Claim.joins(:risk_town).where(towns:{postal_code:70000})
表名称为towns
而不是risk_town
在joins
内部指定关联,在where
内指定表名