2

古い URL をリダイレクトしようとしている Rails 2.3 アプリに行き詰まっています。RoR は初めてで、3 つ以上の知識があるため、これを行うのに苦労しています。

したがって、http://siteurl.com/foo/: foo_idhttp://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。2 番目のコードの方が実際のコードに近いと思ったので、そこに残しました。

于 2012-09-11T02:34:05.767 に答える