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
。