有没有人让Ransack去搜索Gutentag tag_names?我有使ActsAsTaggableOn工作的问题,但Gutentag的工作就像一个魅力,我只需要能够搜索它..
resource.tag_names
会返回resource
的标记列表。
我的模特
def self.ransackable_attributes(auth_object = nil)
['title','content', 'tag_names']
end
行错误为@resources = @q.result(distinct: true).paginate(:page => params[:page])
我假设tag_names没有为Ransack返回正确的数据。有什么想法吗?
答案 0 :(得分:1)
这是因为您的表中没有列tag_names
。因此,您需要为ransackable_attributes
表定义gutentag_tags
,因为这是在引擎盖下调用name
列的表。在config/initializers
目录中为gutentag创建初始化程序,根据需要为其命名。在初始化程序中添加以下内容:
if ActiveRecord::Base.connection.table_exists? 'gutentag_tags'
model = Object.const_get "Gutentag::Tag"
model.singleton_class.class_eval do
define_method(:ransackable_attributes) do |auth_object|
auth_object = nil
['name']
end
end
end
虽然我自己没有尝试过,但这应该可以解决问题。如果您遇到这段代码的问题,请随时提出任何问题。