【发布时间】:2009-11-30 18:16:12
【问题描述】:
这是我的 config/routes.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'
我真的不喜欢这样,因为它既涉及代码重复,又迫使我删除一些 rails 魔术助手。
有什么想法和建议吗?
【问题讨论】:
-
查看我的更新以了解应该可以使用的内容。