作成者 (ユーザー オブジェクト) に属する Post モデルを持つ単純な Rails アプリがあり、作成者の first_name に一致する投稿を見つけたいと考えています。
class Post < ActiveRecord::Base
include Tire::Model::Search
include Tire::Model::Callbacks
belongs_to :creator, polymorphic: true
mapping do
indexes :id, type: 'integer'
indexes :title, boost: 10
indexes :creator do
indexes :first_name
indexes :service_type
end
end
end
検索を実行すると、結果がありません:
Post.tire.search(load: true, page: params[:page], per_page: params[:per_page]) do
query do
match 'creator.first_name', 'Matt'
end
end
rake environment tire:import:all FORCE=true
データベースに「Matt」という名の作成者の投稿が存在することを実行して確認した場合でも。
足りないものはありますか?ありがとう!
アップデート:
Post.rb に以下を追加するとうまくいきました:
def to_indexed_json
as_json.merge(
creator: creator.as_indexed_json
).to_json
end
どうやら、 to_indexed_json で関連付けを指定して機能させる必要があるようです。