我有tire正确使用格式为
的单个ActiveRecord模型setting do
...SETTINGS...
mapping do
...INDEXES...
end
end
如果可能,我想在多个模型之间共享这些设置。我无法从初始化程序中找到任何方法。
我该怎么做?
答案 0 :(得分:4)
鉴于Ruby的灵活性,您可以在此处获得许多选项。最明显的一点:
使用模块常量/方法或多个模块将所需的设置/映射存储为哈希,然后将它们传递给轮胎方法。
在模块中定义共享设置/映射/行为,然后可以将其包含在模型中。该方法在tire/issues/481。
相关摘要:
module Searchable
def self.included(base)
p "Included in #{base}"
base.class_eval do
include Tire::Model::Search
tire do
mapping do
indexes :title, type: 'string', analyzer: 'snowball'
end
end
end
end
end
class Article < ActiveRecord::Base
include Searchable
end
class Person < ActiveRecord::Base
include Searchable
end
这实际上不必在初始化程序中 - 您可以将它放在可从Rails应用程序加载的任何位置。