ruby-on-rails – 使用ActiveRecord匹配PostgreSQL中的数组值
在我的Rails 4应用程序中,我的目标是查看所有联系人,联系人表中的字段visible_to等于1.我的visible_to是:integer,array:true.
但是,我得到以下异常: PG :: UndefinedFunction:ERROR:运算符不存在:integer [] =整数 我搜索了答案,据我所知,有一种类型的visible_to存在问题.但是,我找不到解决方案.我也试图从演员提示中获益,但是徒劳无功. 我的迁移: class AddVisibleToToContacts < ActiveRecord::Migration def change add_column :contacts,:visible_to,:integer,array: true,default: [],using: 'gin' end end 来自Controller的相关变量: @contacts_all_user_sorted = Contact.all.where(visible_to: [1]).order("created_at DESC") 解决方法
从这两个网站:
> http://blog.relatabase.com/rails-postgres-arrays 似乎这个语法应该工作: @contacts_all_user_sorted = Contact.all.where("visible_to @> ARRAY[?]",[1]) 它有用吗? P.S:正如@Quertie在评论中指出的那样,你可能希望在String数组的情况下通过用ARRAY [?] :: varchar []替换ARRAY [?]来强制转换值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |