0

私の Rails アプリでは、次の関係を持ちます。

クラス Location < ActiveRecord::Base; 終わり

クラス 公園 < 場所; 最終クラス キャンプ場 < 場所; end class Trails < Location; 終わり

私の目標は、特定の種類の場所をすべてリンクできるようにすることです。たとえば、公園を選択した場合、その公園に関連するすべてのキャンプ場とトレイルを表示できるようにしたいと考えています。同様に、トレイルまたはキャンプ場を選択する場合、トレイルまたはキャンプ場に関連する他のタイプの場所を見つけられるようにしたいと考えています。

これを達成する方法はありますか?

ご覧いただきありがとうございます

4

1 に答える 1

1

それらをどのように関連付けるかにもよりますが、その情報を保存するために別の関係/テーブルが必要になるでしょう。たとえば、次のようなことができます。

class Location < ActiveRecord::Base
  has_and_belongs_to_many :location_groups
end

class Park < Location; end class Campground < Location; end class Trails < Location; end

class LocationGroup < ActiveRecord::Base
  has_and_belongs_to_many :locations
end

次に、同じロケーション グループ (複数のロケーション グループに属する可能性があります) 内の他の「ロケーション」を検索します。

@park = Park.first
@group = @park.location_groups.first
@group.locations # All locations in that group

それがあなたにいくつかのアイデアを与えるのに役立つことを願っています!

于 2012-05-18T17:02:42.610 に答える