Ruby on rails 匹配第二级(嵌套)资源索引操作的最佳实践
(我正在做codeschool的在线课程练习,rails应用程序从头开始第1部分) 这是我的Ruby on rails 匹配第二级(嵌套)资源索引操作的最佳实践,ruby-on-rails,ruby,Ruby On Rails,Ruby,(我正在做codeschool的在线课程练习,rails应用程序从头开始第1部分) 这是我的路线。rb resources :destinations, only: :index resources :trips do resources :destinations end 并且,rake routes结果使这两条路由执行相同的操作: Prefix Verb URI Pattern Controller#
路线。rb
resources :destinations, only: :index
resources :trips do
resources :destinations
end
并且,rake routes
结果使这两条路由执行相同的操作:
Prefix Verb URI Pattern Controller#Action
destinations GET /destinations(.:format) destinations#index
trip_destinations GET /trips/:trip_id/destinations(.:format) destinations#index
我希望将trip\u destinations
与trip\35; show
匹配,即重定向到/trips/:id
,我有一些解决方案,比如在routes.rb
中硬编码,或者在destination\35; index
中添加重定向。哪一个更好?是否有完成此任务的最佳实践
resources :trips do
resources :destinations do
member do
get 'index' => 'trips#show'
end
end
end
这对您来说是可行的,但它基于错误的设计,因为响应与请求不匹配。换句话说,这是一条糟糕的路线。trip的目的地索引资源应该使用trip的目的地索引而不是trip对象本身进行响应
/trips/:id/destinations
路径不应重定向或呈现/trips/:id
。首先不应该有指向trips/:id/destinations
的链接,除非您的应用程序可以使用适当的资源进行响应
很容易被花哨的路线和URL呈现所迷惑。确保你的路线有意义。这将在将来为你省去很多麻烦
这对您来说是可行的,但它基于错误的设计,因为响应与请求不匹配。换句话说,这是一条糟糕的路线。trip的目的地索引资源应该使用trip的目的地索引而不是trip对象本身进行响应
/trips/:id/destinations
路径不应重定向或呈现/trips/:id
。首先不应该有指向trips/:id/destinations
的链接,除非您的应用程序可以使用适当的资源进行响应
很容易被花哨的路线和URL呈现所迷惑。确保你的路线有意义。这将在将来为您节省大量的麻烦。谢谢@gg\s。你说得对,我应该明确禁用该路由。谢谢@gg\s。你是对的,我应该明确禁用该路由。