我正在使用Ransack在一些模型中执行相当复杂的搜索。其中一个模型保存自由文本,并使用acts_as_taggable gem标记单词。
我正在尝试为这些单词创建一个集合选择器,这样ransack就可以从用户可以定义的标记子集中找到任何全文记录。
这使我几乎可以做到这一点,但是如果我尝试选择多个单词,则不会返回任何结果!
= f.select :note_in, @freetexts.tag_counts_on(:tags), {}, {:multiple => true}发布于 2013-12-18 14:12:21
Ransack并不是真正面向复杂的搜索。如果你足够强调ransack,你很可能会遇到一个更难的问题,如果你在做一个复杂的select操作。
对于复杂的搜索,我会重新评论Sequel,它来自于ransack的同一作者,并且更适合于复杂的搜索。
此外,根据这些线程,您走进了死胡同:Ransack and acts-as-taggable-on issues
发布于 2015-05-29 01:23:32
我根本不是专家,但这个非ransack解决方案可以用于那些需要使用gem上的acts as-taggable-on标签来过滤标签的人:
@search = MyModel.ransack(params[:q])
@result = @search.result(distinct: true).includes(:related_model)
@result = @result.tagged_with(params[:tags].split(/\s*,\s*/)) if params[:tags].present?
@result = @result.paginate(page: params[:page], per_page: 20)这需要一个新的:tag参数,该参数超出了Ransack的范围。你可以用来过滤掉Ransack给你的结果。
https://stackoverflow.com/questions/11816826
复制相似问题