我有用户,乐队和代码
乐队有很多代码,用户有很多代码,但用户和乐队没有任何关系。
乐队有许多代码,因为用户创建与乐队相关的代码。用户可能有许多频段代码......
我想用户可以有一个乐队,但我不希望我的网址是用户/:id / bands /:id / codes /:id
想法?
答案 0 :(得分:0)
编辑:我刚刚注意到你的问题是你不想要那个网址。我的回答是相反的,对不起。
如果这就是想要你的网址,那么你肯定会让用户拥有很多乐队,乐队有很多代码。然后使用has_many :though
使用户拥有许多代码。像这样:
class Code < ActiveRecord::Base
belongs_to :band
belongs_to :user, :through => :band
end
class Band < ActiveRecord::Base
has_many :codes
belongs_to :user
end
class User < ActiveRecord::Base
has_many :bands
has_many :codes, :through => :bands
end
然后使用嵌套资源设置路线:
map.resources :users do |users|
users.resources :bands do |bands|
bands.resources :codes
end
end
end
这会使code_path(1, 2, 3)
映射到/users/1/bands/2/codes/3
。您的CodesController#show
操作可以访问user_id
(1),band_id
(2)和id
(3)。