2

我被困在一个试图重定向一些旧 URL 的 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
4

1 回答 1

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

于 2012-09-11T02:34:05.767 回答