如何使用嵌套资源检索用户第二级资源

时间:2014-05-26 20:35:06

标签: ruby-on-rails nested-resources

我的用户模型包含许多照片,而且这些照片有很多标签。

我的路线:

resources :users do
  resources :photos do  
    resources :tags
  end
end

我的观点:

<%= @user.photos.tags.count %>

我不知道如何检索用户拥有的所有标记,因为它是第二级嵌套资源。 任何的想法?谢谢你们!

2 个答案:

答案 0 :(得分:2)

你走了:

class User < ActiveRecord::Base
  has_many :photos, dependent: :destroy
  has_many :tags, through: :photos
end

class Photo < ActiveRecord::Base
  belongs_to :user
  has_many :tags, dependent: :destroy
end

class Tag < ActiveRecord::Base
  belongs_to :photo
end

# @user.tags

滚动到http://guides.rubyonrails.org/association_basics.html#the-has-many-through-association的结尾 顺便说一句,不要将嵌套资源和关联作为术语混淆。

答案 1 :(得分:2)

你可以这样做:

class User < ActiveRecord::Base 
  has_many :photos
  has_many :tags, through: :photos
end

在视图中:

<%= @user.tags.count %>