2012-02-07 14 views
1

私は正しいアプローチが何であるかわからないactionpack/libに/ action_controller /金属/ redirecting.rb上書きredirect_to

def redirect_to(options = {}, response_status = {}) #:doc: 
     .... 
     self.location  = _compute_redirect_to_location(options) 
     # add customized code here to modify self.location 
     ...... 
end 

のデフォルトのredirect_to方法を変更する必要があります。私がやったことは以下のとおりです。

  • で私のレールプロジェクトにコピーredirecting.rb "のlib/rails_ext/action_controller/redirecting.rb"
  • redirect_toに変更を(製)メソッド
  • 追加line:application.rbの 'rails_ext/action_controller/redirecting'が必要です。

しかし、私は警告
rails_ext/action_controller/redirecting.rbを取得しています:3:警告:既に初期化定数DEFAULT_MESSAGE

を追加して、私はこれを達成するためのより良い方法がなければならないと思います。

+1

、あなたがあなた自身のバージョンを再実装してだけではなく、それを呼び出すことができます。あなたが変えようとしているのは何ですか? – agmcleod

+0

私はいくつかのオープンソースコードを使用していますが、内部的にはredirect_toを何度も呼び出します。私は2つの異なるホスト上で実行されているWebサーバーとレールサーバーを持っています。 Webサーバーはhttps要求を受け取り、http経由で自分のサーバーにリダイレクトします。しかし、レールサーバーがリダイレクトするとき、httpの代わりにhttpsを使用してリダイレクトする必要があります。 – user612308

答えて

0

Rubyの正しい方法は、関数を再定義することです。例hereが表示されます(「クラスの動作を変更する」の章)。