2016-06-24 14 views
0

に基づいて、ネストされた属性を取得し、私はUser.dogsを実行しようとしたと私はこのような犬のエンティティのリストを取得:Railsが、私は3つのクラス</p> <pre><code>Class User < ActiveRecord::Base has_many :dogs end Class Dog < ActiveRecord::Base belongs_to :user has_many :tags end class Tag < ActiveRecord::Base belongs_to :dog end </code></pre> <p>を持ってhas_manyの関係

[Dog, Dog, Dog, Dog] 

私がアクセスした場合配列内のDogエンティティ、私はDogのすべての属性を取得し、正常に動作します。しかし、私の問題は、Dogの中にTag entityを含める必要があることです。例によって

私はこの

user.dogs.each do |dog_entity| 
    puts dog_entity.tags #Prints the tags related value of Tag in Dog. 
end 

をすればどのように私はUser.dogsを実行するときに犬にタグ関連の値は、配列内の各犬に内側に来ることを実現?

答えて

1

は関連しているため、モデルにないオブジェクトで呼び出す必要があります。

私は、これはuserがモデルオブジェクトではないことを

user.dogs.includes(:tags).each do |dog| 
    puts dog.tags 
end 

お知らせを動作するはずだと思います。
includes(:tags)私たちは避けることができますn + 1問題。

Dogsではありません。

関連する問題

 関連する問題