我们正在更新我们的大型Web应用程序并摆脱我们的URL同义词系统。例如,虽然我们只为“广告客户”使用一种模型,但它使用同义词路径代替“商人”和“卖家”。因此,/ merchant/1和/ seller/1使用与广告商/ 1相同的确切控制器和操作。Rails 3路径中的递归重定向
我们不再需要此功能,但我们确实需要使用旧URL来正确地将用户重定向到适当的位置(即适当的控制器操作)。
到目前为止,我已经试过:
1)阅读http://guides.rubyonrails.org/routing.html - 这使我尝试以下建议
2)匹配 '/商人'=>重定向('/广告主) - 这似乎并没有工作,尽管语法似乎是正确的。
3)循环访问资源(这会产生路由的TON并可能导致不安全感):
ADVERTISER_SYNONOYMS = ['affiliates', 'sellers']
ADVERTISER_SYNONYMS.each do |a|
resources :advertisers, :path => a, :as => :advertiser
resources :other_controller do
member do
get :test
match :generate_test
end
end
end
end
我们使用嵌套资源在我们的routes.rb,所以我用得到这些synonymns费周折在更复杂的URL中都可以识别。如果有人处理这个问题或者有更优雅的建议,我会非常感激。