概念的にこれに問題があるので、このタスクに取り組む方法についてのガイダンスを見つけられることを願っています.
例はやや恣意的ですが、ここでの私の目的を示すのに役立つことを願っています.
3 モデル、参加
class Manufacturer < ActiveRecord::Base
has_many :models
end
class Model < ActiveRecord::Base
belongs_to :manufacturer
has_many :editions
end
class Edition < ActiveRecord::Base
belongs_to :model
end
一致するものを検索するために、データを結合したい
<% @editions.each do |edition| %>
<% model = edition.model %>
<% manufacturer = model.manufacturer %>
<%= "#{manufacturer.name} #{model.name} #{edition.name}" %>
これを複雑にします。追跡するために、これを3つの選択として扱いたいと思います。
私がこれを予測する方法は、マッチングにあいまい検索を使用し、一致を分離しながらトークン入力などを表示することです。
私の頭の中では、eBay がクイック リストの販売ページの一部として同様のことを行う可能性があると思います。
考え:
- Model.find(:all, :joins => [:editions, :manufacturer] ) ですべてが得られますが、これは 4 番目のモデルに拡張できませんか?
- これらのキャプチャを検索フォームなどで使用する必要があると仮定すると、テキスト フィールド内とコントローラー内の両方でそれらを分離する必要があります。
- 別の方法は、これを単一のテーブルに永続的にまたはルックアップ テーブルとして格納することです。この単一の選択には、すべての情報を収集するための参照が含まれています
そして、次のようなもの
class Search < ActiveRecord::Base
has_one :manufacturer
has_one :model
has_one :edition
end