Это отрывок из моего файла config / rout.rb:
resources :accounts do |account|
account.resource :profile, :except => [:new, :create, :destroy]
account.resources :posts,
:collection => { :fragment => :get },
:has_many => [:comments, :likes]
# even more code
end
Мне бы хотелось, чтобы каждый вложенный ресурс загружался из пространства имен учетной записи, например Account :: PostsController вместо PostsController .
Используя ресурсы :accounts, :namespace => 'account'
пытается загрузить AccountPostsController.
Попытка вложить структуру не очень хорошо работает:
map.namespace :account do |account|
..
end
Предыдущий код будет загружать файлы из нужных мне мест, однако он добавляет пространство имен к URL и сгенерированным путям, поэтому у меня будут такие методы, как account_account_posts_url
и аналогичные пути.
Другая альтернатива - использовать что-то вроде:
account.resource :profile, :controller => 'account/profile'
Мне действительно не нравится это, так как это включает в себя как дублирование кода, так и вынуждает меня удалить некоторых из магических помощников рельсов.
Есть мысли и предложения?