我正在将跟随的用户列表保存到db中,然后尝试获取当前用户是该列表一部分的记录,但继续获取此异常。
SQLite3::SQLException: no such column: parameters.user: SELECT "activities".* FROM "activities" WHERE "parameters"."user" = 3这是db中的一个记录。
=> #<PublicActivity::Activity id: 107, trackable_id: 16, trackable_type: "Shout", owner_id: 1, owner_type: "User", key: "shout.shout", parameters: {:user=>[3]}, recipient_id: nil, recipient_type: nil, created_at: "2015-10-20 21:44:41", updated_at: "2015-10-20 21:44:41", read: false>这些是我尝试过的问题,给了我这个。current_user.id =3
PublicActivity::Activity.where({'parameters.user' => current_user.id})
PublicActivity::Activity.where(parameters: {user: current_user.id})所以。如何获得当前用户是该用户列表的一部分的记录?另外,我能在Mysql中使用相同的查询吗?
发布于 2015-10-20 23:02:44
这似乎是一个愚蠢的问题,但是参数列是否定义为模型中的序列化列?有了像MySQL和(我相信) SQLite这样的适配器,您就不能查询序列化的字段。因此,如果您想要查询它,则需要将其与序列化字段分开保存。
尽管如此,使用PostgreSQL及其rails适配器,您可以查询序列化的字段。
你应该看看这个SO question和this anser
https://stackoverflow.com/questions/33247850
复制相似问题