2016-11-20 9 views
0

たとえば、私は自動車を持っています。タイヤのいくつかの「タイプ」と互換性があります。 すなわち泥タイヤ、道路用タイヤなどアクティブレコードには、セットのセットの返却を処理するためのエレガントな方法がありますか?

次に、それぞれのタイプごとに複数のモデルがあります。つまり、グッドイヤー、ファイヤーストーンなど

私は 'A.R.モデルとの互換性のあるタイヤタイプごとにタイヤモデルの完全なセットを返します。

最初にすべてのタイプ、つまり=>スノータイヤとロードタイヤを照会すると、そのセットをループし、別のセット、つまりグッドイヤースノータイヤ、ファイヤーストーンスノータイヤ、スパータイヤロードタイヤ、firestone roadtires、それはそれらのフルセットを返します。

スキーマ:

Automobile=>has_many=>tire_types=>has_many=>tire_models.

私は自動車モデルを照会し、自動車と互換性のあるtire_modelsのフルセットを取得したいです。

Automobile.tire_types.tire_modelsできますか?

A.R.私のためのすべての反復を行うのに十分なスマート?

もしそうでない場合は、A.Rを使用してエレガントな方法があります。これを行うための機能、またはこれを行うための基本的な方法ですか?

答えて

0

解決策を見つけました。モデルには、has_manyのネストされた宣言が含まれます。

class SportSchedule < ActiveRecord::Base 
    has_many :gamedays 
    has_many :games, :through => :gamedays 
    has_many :results, :through => :games 

これは、articleにあります。

アクティブレコードの帽子にはまだ別の羽があります。

関連する問題