![](/img/trans.png)
[英]Rails - how to convert output of find_by_sql (array) to an ActiveRecord relation?
[英]Selecting rows where array elements in Array Rails ActiveRecord/SQL
在Rails 4 / Ruby 2.1中,我正在嘗試執行以下操作:
@user.submissions.where(:submission_codes_array => valid_submission_codes_array).count
類似於您要查看:id
是否在可能值數組(即.where(:id => valid_ids)
,如果在這種情況下,檢查特定屬性(它是postgres數組類型)是否包含可能值集中的任何值,在這種情況下,將對其進行計數。
有任何想法嗎?
AFAIK,您無法通過ActiveRecord進行操作,因為您使用的是僅限Postgres的功能(又名,我認為mysql不支持所需的功能)。
您想要的內容可以在這里找到: http : //www.postgresql.org/docs/8.2/static/functions-array.html
具體來說,您最終會得到類似Model.where("submission_codes_array && ?", valid_submission_codes_array.to_s.gsub('"',"'"))
類的Model.where("submission_codes_array && ?", valid_submission_codes_array.to_s.gsub('"',"'"))
。 &&
運算符將檢查兩者之間是否存在重疊(也就是設置交集)這兩個數組,如果我沒看錯文檔的話。
注意,Active,ActiveRecord不會將數組序列化為Postgres喜歡的形式,因此您需要對其進行一些調整。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.