将Params传递给rails 2.3中的301重定向

时间:2012-09-11 01:31:05

标签: ruby-on-rails ruby-on-rails-2

我遇到了试图重定向某些旧网址的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

1 个答案:

答案 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。我假设第二个更接近真实代码,所以我把那个留在那里。