2016-05-27 12 views
0

私はこの基本的な問題の解決法を見つけるのに苦労しています。 Googleの利用規約も高く評価されます。靴、靴下や形質Rails Association Tertiary has_many belongs_to

靴は、多くの靴下を持っています

私は3つのテーブルを持っています。靴下は靴に属します。靴下には多くの特色があります。形質は靴下に属します。

靴の私のショーでは、特定のid:xの靴のために、それに属する靴下とその靴下に属する特色を表示したいと思います。

class ShoesController 
    def show 
    @shoe = Shoe.find(params[:id]) 
    @socks= @shoe.socks 
    end 

このコードを使用すると、id:xの靴に属する靴を履くことができます。しかし、どのように私はid:xの靴に属する靴下に属する特性を見つけることができますか? 私は解決策のようなものだと思う:

@sock = Sock________ 
@trait = @sock.traits 

しかし、私は配列を取得するには、データ

答えて

2

のこの作品で検索を実行する方法がわからない:

@traits = @socks.map(&:traits).flatten 

取得するにはActiveRecord::Relation

@traits = Trait.where(sock: @socks) 
+0

ありがとうございます。私は朝にそれを試してみるつもりです。あなたは私が自分でGoogleにそれを使用することができた言葉についてのアドバイスを持っていますか?それとももっと直感的にコンセプトをまとめると思いますか? – user3456978

+0

配列解決のためには、Ruby配列ヘルプページhttp://docs.ruby-lang.org/en/2.0.0/Array.htmlを入手するために 'ruby array'を検索し、あなたの必要性に合ったものを見つけてください(すべての靴下が配列であり、それから何かを抽出しようとしている)。 ActiveRecord :: Relationの場合は、レールのガイドを参照する必要があります。そのため、レールの面でどちらの解決策があるのか​​が分かります。この場合、Active Record Query Interfaceのガイドです:http://guides.rubyonrails.org/active_record_querying.html – Anand

関連する問題