次の形式の単一の ActiveRecord モデルに対してタイヤが正しく動作しています。
setting do
...SETTINGS...
mapping do
...INDEXES...
end
end
可能であれば、これらの設定を複数のモデル間で共有したいと考えています。イニシャライザからそれを行う方法が見つかりません。
これどうやってするの?
次の形式の単一の ActiveRecord モデルに対してタイヤが正しく動作しています。
setting do
...SETTINGS...
mapping do
...INDEXES...
end
end
可能であれば、これらの設定を複数のモデル間で共有したいと考えています。イニシャライザからそれを行う方法が見つかりません。
これどうやってするの?
Rubyの柔軟性を考えると、ここでは多くのオプションを利用できます。最も明白なもの:
モジュール定数/メソッドまたは複数のものを使用して、必要な設定/マッピングをハッシュとして保存し、それらをTireメソッドに渡します。
モジュールで共有設定/マッピング/動作を定義します。これをモデルに含めることができます。このアプローチは、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アプリケーションからロード可能な任意の場所に配置できます。