简体   繁体   中英

SQLite3::SQLException: no such column: parameters.user:

I am saving a list of followed users to the db and then trying to get the records where the current user is a part of that list but keep getting this exception.

SQLite3::SQLException: no such column: parameters.user: SELECT "activities".* FROM "activities"  WHERE "parameters"."user" = 3

This is a record in the 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>

These are the queries I've tried that give me this. current_user.id = 3

PublicActivity::Activity.where({'parameters.user' => current_user.id})

PublicActivity::Activity.where(parameters: {user: current_user.id})

So. How do I get the records where the current user is a part of that list of users? Also, would the I be able to use the same query in Mysql?

Might seem like a silly question, but is the parameters column defined as a serialized column in the model? With adapters like MySQL and (I believe) SQLite you can't query serialized fields. So If it's something that you'd like to query, you need to save it separately from the serialized field.

That being said, with PostgreSQL and their rails adapter, you can query serialized fields.

You should check out this SO question and this anser

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM