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



我被一个Rails 2.3应用程序卡住了,试图重定向一些旧的URL。我是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参数,而是实际将其写入!

非常感谢您的帮助或指点。

在我的路线上.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

您根本不应该需要: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。我认为第二个更接近真实的代码,所以我把那个留在了那里。

最新更新