有人让 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 返回正确的数据。有什么想法吗?
最佳答案
发生这种情况是因为表中没有 tag_names
列。因此,您需要为 gutentag_tags
表定义 ransackable_attributes
,因为该表的 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
尽管我自己没有尝试过,但这应该可以解决问题。如果您在使用这段代码时遇到问题,请随时询问。
关于ruby-on-rails - 对 Gutentag 标签进行搜查 - 未定义方法 `type' for nil :NilClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50921458/