0

Sunspot Solrを使用してイベントを検索していますが、各イベントにはGroupオブジェクトを参照するgroup_idがあります(複数のイベントが同じグループを持つことができます)。ユーザーがグループ名を検索した場合に適切なイベントを見つけたい。

検索可能なブロックで解決を試みました

string :events_group_name do
  group.map(&:name)
end

エラー

SQLite3 :: SQLException:そのような列はありません:groups.event_id:SELECT"groups"。*FROM "groups"WHERE"groups"。"event_id"= 3 LIMIT 1

問題は、グループにevent_idがないことです。これを機能させるにはどうすればよいですか?回避策は、グループ名をEventオブジェクトの列として保存することですが、確かにもっと良い方法があります。ありがとうございました!

4

1 に答える 1

0

黒点については何も知りませんが、モデルが正しくマッピングされていないと思います。次のような関連付けがある場合:

1グループ->Nイベント

has_manyモデルではaとaを使用する必要がありbelongs_toます。has_oneアソシエーション1から1でのみ使用されます。あなたの場合:

class Group
  has_many :events
  #...
end

class Event
  belongs_to :group
  #...
end

Railsガイドには、ActiveRecordとの関連付けに関する優れた記事と例があります。あなたはそれを見ることができます。

于 2013-03-11T19:04:47.700 に答える