我遇到了试图重定向某些旧网址的Rails 2.3应用程序。我是RoR的新手,并且知道3+方式更好,所以我无法完成这项工作。
所以: http://siteurl.com/foo/:foo_id 转到 http://siteurl.com/foo/:foo_id/foo_items
我认为我很接近,因为最终产品是: http://siteurl.com/foo/foo_id/foo_items ,但实际上没有通过:foo_id
参数把它写出来!
非常感谢任何帮助或指示。
在我的routes.rb
中map.connect '/foo/:foo_id',
:controller => 'redirect',
:action => :redirectoldfoo,
:monkey_tag => ':foo_id'
在我的重定向控制器中:
def redirectoldfoo
redirect_to "/auctions/#{params[:monkey_tag]}/catalog_items"
end
答案 0 :(得分:1)
您根本不需要:monkey_tag
,因为:foo_id
就是您正在使用的所有内容。
map.connect '/foo/:foo_id',
:controller => 'redirect',
:action => :redirectoldfoo
def redirectoldfoo
redirect_to "/auctions/#{params[:foo_id]}/catalog_items"
end
请注意,在您的示例中,您表示您尝试重定向到/foo/:foo_id/foo_items
和/auctions/:foo_id/catalog_items
。我假设第二个更接近真实代码,所以我把那个留在那里。