Учитывая гибкость 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.
Был ли мой ответ вам полезен? – karmi