Ruby on rails Rails:名称空间资源的正确路由
如果在Rails 2.3中向Ruby on rails Rails:名称空间资源的正确路由,ruby-on-rails,Ruby On Rails,如果在Rails 2.3中向routes.rb中的命名空间添加资源映射,如何使link_链接到(以及form_for,等等)理解它应该获得命名空间控制器,而不是根命名空间中的控制器 例如 在routes.rb中使用此选项: map.namespace :admin do |admin| admin.resources :opt_in_users end 这一观点: <%= link_to @anOptInUser %> 该link\u to应使用link\u作为\u ad
routes.rb
中的命名空间添加资源映射,如何使link_链接到(以及form_for
,等等)理解它应该获得命名空间控制器,而不是根命名空间中的控制器
例如
在routes.rb中使用此选项:
map.namespace :admin do |admin|
admin.resources :opt_in_users
end
这一观点:
<%= link_to @anOptInUser %>
该link\u to
应使用link\u作为\u admin\u opt\u in\u user
,但它尝试使用link\u作为\u opt\u in\u user
,但失败。url\u的rails文档表明您必须明确地调用它:
如果您传递的不是散列,而是记录
(如活动记录或活动记录)
资源)作为选项参数,
您将触发的命名路由
那张唱片。查找将在上进行
类的名称。所以通过一个
车间对象将尝试使用
车间沿着小路走。如果你有
嵌套路由,例如
管理员\u车间\u路径您必须
明确地说(这是不可能的)
用于url(用于猜测该路线)
(from)Rails可以接受一组对象,然后将这些对象映射到命名路由中
e、 g
您将获得到/articles/@article.to_-param/comments/@article.to_-param
这可以用在表格中,用于
和其他地方使用:
link_to '...', admin_opt_in_user_path(@anOptInUser)
收集:
admin_opt_in_users_path
还可以添加编辑前缀和新前缀
使用表单时,请确保在新操作中传递admin\u opt\u in\u users\u path,在编辑操作中传递admin\u opt\u in\u user\u path(@anOptInUser)。对于命名空间资源,与嵌套资源一样,可以使用带有符号的数组:
link_to 'Click here', [:admin, @opt_in_user]
或
是的,这就是我最后做的…谢谢你确认这是唯一的方法!(尽管我不同意,如果只有一条路径,url_就不可能猜到它!)它仍然适用于Rails 3.1.3。
form_for [:admin, @opt_in_user] do |form| ....