Rails 3协会问题:乐队有代码,用户有代码,但用户没有乐队......我该如何修改

时间:2012-01-18 04:19:02

标签: ruby-on-rails ruby-on-rails-3

我有用户,乐队和代码

乐队有很多代码,用户有很多代码,但用户和乐队没有任何关系。

乐队有许多代码,因为用户创建与乐队相关的代码。用户可能有许多频段代码......

我想用户可以有一个乐队,但我不希望我的网址是用户/:id / bands /:id / codes /:id

想法?

1 个答案:

答案 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)。