将多个路径映射到控制器

时间:2014-12-09 00:12:13

标签: ruby-on-rails ruby routing

我有一个名为CardController的控制器。目前我有像card_path这样的路线映射到/ cards /:id。我想这样做,以便我可以使用/ trips /:id和/ events /:id映射到相同的/ cards /:id。我知道我最终必须覆盖card_path但是可以为此设置我的路由文件吗?我是否需要设置一个仅重定向到卡片操作的Trip and Event控制器?

编辑:

旅行应该完全映射到卡片,意味着“trip / 1 / edit”应该以'cards / 1 / edit'结束,'trips / 1 / images / 12'应该以'cards / 1 / images /结尾12'

2 个答案:

答案 0 :(得分:1)

我最终在路线文件中添加了一些控制器。

的routes.rb

def card_routes
  member do
    get 'test'
  end
end

class TripsController < CardsController; end

resources :trips { card_routes }
resources :cards { card_routes }

现在/trips/1/test/cards/1/test转到同一个地方。

答案 1 :(得分:0)

您可以轻松地执行以下操作:

get 'trips/:id' => 'cards#show'

尝试在浏览器中访问不同的行程,trips/1trips/2(如果存在带有这些ID的卡片),他们应该重定向到相应的卡片。

如果您还没有,我建议您花几分钟时间阅读路线指南,因为它非常全面并且展示了不同的完成方式:

http://guides.rubyonrails.org/routing.html