2012-01-20 3 views
0

いくつかのコードを書く際に問題があります(疲れているかもしれません)。多対多関係を使用してコレクションのすべてのタイプを取得する方法

私は結婚式テーブルを通じて複数のサービスを持つモデルウェディングを持っています。それは多対多関係です。 これらの各サービスには、特定のservice_typeがあります。

だから、基本的に私はそのような何かを行うことができます。

myWeddingObject.services.first.service_type 

私の問題は、私が直接結婚式のために利用可能な全てのサービスの種類を取得できるようにしたいと思いますということです。たとえば、次のように

myWeddingObject.service_types 

そして、私の質問は、私はすべてのサービスを取得し、それらの型をチェックし、それを収集したり、私は他の方法があるでしょう、私の結婚式のモデル内のメソッドを記述する義務までです最初は見ない?

私は結婚式のモデルではそのような何かを書くことを考えた:

has_many :service_types, :through => :services 

しかし、あなたが推測できるように、それは動作しません。 別のモデル/ SQLテーブルを追加する必要がありますか?

私は十分に明確であり、あなたの助けに感謝したいと思います、私は感謝します!

答えて

2

簡単な方法は、単にサービスタイプの配列を返します

wedding.services.map(&:service_type).uniq 

を...行うことです。 has_many:throughが機能するようにするには、service_typeに独自のモデルを作成する必要があります。追加や編集をしたいサービスタイプがたくさんある場合は、明らかにモデルが必要です。それがちょうど小さな固定されたセットならば、別のモデルがおそらく過剰です。

+0

お返事ありがとうございます! –

関連する問題