0

作成者 (ユーザー オブジェクト) に属する 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 で関連付けを指定して機能させる必要があるようです。

4

0 に答える 0