【发布时间】:2015-04-17 12:46:44
【问题描述】:
我有一个名为 User 的模型,我在属性参数中将哈希存储到用户模型。我已将此列声明为我的用户模型中的存储,没有任何访问器,我以@user.params 访问它,同时将数据保存到数据库中它工作得很好。但是,我必须按某些标准检索数据。
假设我存储了一个用户对象,其中 params 字段为 { checked: true } 和其他{检查:真}
现在我必须检索具有参数的用户:{checked: true}
我使用的查询是:
User.where(params: {"checked" => true});
这是抛出错误:
INTERNAL ERROR!!! SQLite3::SQLException: no such column: params.checked: SELECT "users".* FROM "users" WHERE "params"."checked" = 't'
我搜索了大量关于比较数据库中两个商店字段的信息,但没有找到相关的东西。
提前致谢
【问题讨论】:
-
您能否提供有关此“参数”字段的更多详细信息 - 它是一个序列化字段吗?对于您的示例中的对象,该字段实际存储在数据库中的是什么?
-
@sharvy 我可以毫无问题地访问它
-
@max 是的,它是一个序列化的文件,我使用了活动记录存储,请看一下:link
-
您的
params列类型是什么? -
@Liyali 它在数据库中的列类型是文本
标签: ruby-on-rails ruby-on-rails-3 activerecord