目的是创建以下两个网址:
其中"帖子"是资源,"小部件"不是(它只是客户想要的URL)
我希望这两条路线都转到SAME控制器。
我在routes.rb中有这样的设置:
namespace :widgets do
get :edit
end
resources :posts do
namespace :widgets do
get :edit, to: "widgets#edit"
end
end
快速rake routes / grep显示这些转到两个单独的控制器:
rake routes | grep widgets
/widgets/edit(.:format) widgets#edit
/posts/:post_id/widgets/edit(.:format) widgets/widgets#edit
我有两个我想要的网址,但第二个是去另一个控制器!我尝试了一大堆不同的配置而没有运气 - 我怎么会破坏那些额外的"小部件"第二条路线中的命名空间没有放弃客户想要的URL吗?
我正在使用rails 3.2,因此"关注"出局。现在升级不是一个选项。
提前致谢。
答案 0 :(得分:1)
我会将该路由与嵌套在资源路由块之上。
获取“posts /:post_id / widgets / edit”=> '部件#修改'。
您的嵌套命名空间正在添加小部件slug,您所需的操作也在添加模型slug。