Ransack存储在db中的搜索字符串数组

我正在尝试使用ransack搜索文章。

在我的一个问题是如何根据标签获取文章,我发现了如何做到这一点:

找到数组的文章

现在我只想用搜索进行搜索,但是我收到了一个错误

我喜欢这个

 

执行此搜索xbox时出现的错误如下:

 PG::InvalidTextRepresentation: ERROR: array value must start with "{" or dimension information LINE 1: ...es".* FROM "articles" WHERE "articles"."tags" IN ('xbox') O... 

数组错误搜索

inheritance人控制器:

 def index @q = Article.ransack(params[:q]) @articles = @q.result.paginate(page: params[:page], :per_page => 10).order('created_at DESC') end 

如何使用标签搜索文章?

谢谢!

正如本期所讨论的,您需要将gem postgres_ext添加到您的项目中:

 # Gemfile gem 'postgres_ext' 

并将其添加到初始化程序:

 # config/initializers/ransack.rb Ransack.configure do |config| %w[ contained_within contained_within_or_equals contains contains_or_equals overlap ].each do |p| config.add_predicate p, arel_predicate: p, wants_array: true end end 

之后,您将能够在序列化数组中使用contains