2015-10-20 81 views
1

我保存了一個關注用戶列表到數據庫,然後試圖獲取當前用戶是該列表的一部分,但不斷得到此異常的記錄。SQLite3 :: SQLException:沒有這樣的列:parameters.user:

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

這是在分貝

=> #<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中使用相同的查詢嗎?

+0

似乎是一個愚蠢的問題,而是定義爲模型的序列化列各參數列? – wspurgin

回答

1

可能看起來像一個愚蠢的問題,但參數列定義爲模型中的序列化列?隨着適配器像MySQL和(我相信)SQLite 不能查詢序列化字段。因此,如果您想要查詢某個內容,則需要將其與序列化字段分開保存。

這就是說,用PostgreSQL及其導軌適配器,你可以查詢序列化字段

你應該看看這個SO questionthis anser

+0

就是這樣。我正在使用的寶石有參數序列化。但它有點爛,我不能做任何簡單的事情。 – teddybear

相關問題