РЕДАКТИРОВАТЬ: Я только что заметил, что ваш вопрос говорит, что вы не хотите этот URL. Мой ответ обратный, извините.
Если это именно то, что вы хотите, чтобы ваш URL был таким, то вы определенно должны сделать так, чтобы у Пользователей было много Полос, а у Полос много Кодов. Затем используйте 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).