我正在开发一个项目,我有一个用户,一个用户有一个UserSetting。我想获取User.user_setting.status =='active'的用户。我在那一刻:根据关联属性获取记录
User.joins(:user_setting).where(:user_setting => {:status => 'active'})
,但它似乎没有工作,我得到的错误
Unknown column 'user_setting.status' in 'where clause'
如果有人能帮助我,我要去哪里错了,将不胜感激。
啊,我当然可以。 UserSettings返回UserSettings(id:integer,status:string,user_id:integer,created_at:datetime,updated_at:datetime)' – user2320239
'用户'不应该是'User'?错字?所以,在user.rb中你有'has_one:user_settings'?复数? – Ursus
您错误地命名模型。用户表应该由User模型管理,而不是由User模型管理,user_settings应该映射到UserSetting模型而不是UserSettings模型。对于Rails来说,模型名称必须是* singular *,以便自动选择正确的表格,而不是复数形式。解决这些问题,并看看是否有帮助。 – meagar