回答:
request.original_url現在のURLを取得するには、を使用する必要があります。
このメソッドはoriginal_urlメソッドに記載されていますが、興味があれば、実装は次のとおりです。
def original_url
  base_url + original_fullpath
end
は廃止されたため"#{request.protocol}#{request.host_with_port}#{request.fullpath}"、を記述できますrequest.url。
のrequest.url代わりに書くことができますrequest.request_uri。これは、プロトコル(通常はhttp://)とホスト、およびrequest_uriを組み合わせて完全なアドレスを提供します。
fullpathはプロトコル/ドメイン/ポートを含みません!絶対URLではありません!
                    "http://#{request.host+request.fullpath}"動作するかどうか、(ポートが重要な場合)"http://#{request.host}:#{request.port+request.fullpath}"
                    "http://#{request.host}:#{request.port}#{request.fullpath}"
                    request.url廃止された申し立ての参照を指摘できますか?提案された解決策は、request.urlすでに何をしているのかを示す長い道のりです。実装は、単純にプロトコル+ host_with_port +フルパス(github.com/rails/rails/blob/…)です
                    Ruby on Rails 3.0メソッドは今だと思いますrequest.fullpath。
あなたは使うことができます url_for(only_path: false)
サポート終了の警告:#request_uriの使用は廃止されました。代わりにフルパスを使用してください。
request.uri、この質問ですでに何度か指摘されていますが... OK、ありがとう
                    あなたが使用している場合のRails 3.2またはレール4を、あなたが使用する必要がありrequest.original_url、現在のURLを取得します。
このメソッドのドキュメントはhttp://api.rubyonrails.org/classes/ActionDispatch/Request.html#method-i-original_urlにありますが、興味があれば、実装は次のとおりです。
def original_url
  base_url + original_fullpath
endこのcurrent_urlメソッドをApplicationControllerに追加して、現在のURLを返し、他のパラメーターでのマージを許可できます。
# https://x.com/y/1?page=1 
# + current_url( :page => 3 )
# = https://x.com/y/1?page=3
def current_url(overwrite={})
    url_for :only_path => false, :params => params.merge(overwrite)
end使用例:
current_url --> http://...
current_url(:page=>4) --> http://...&page=4url_for params.merge(:format => "PDF", :only_path => false)
                    link_to使用params.mergeしてurl_for完全にスキップすることができます
                    Ruby on Rails 3.1.0.rc4の場合:
 request.fullpathfullpathabsolute URL要求されたオリジナルのポスターを提供しません。
                     url_for(params)そして、いくつかの新しいパラメーターを簡単に追加できます。
url_for(params.merge(:tag => "lol"))request.domainは機能すると思いますが、blah.blah.comのようなサブディレクトリにいる場合はどうなりますか?このような何かがうまくいくかもしれません:
<%= request.env["HTTP_HOST"] + page = "/" + request.path_parameters['controller'] + "/" + request.path_parameters['action'] %>パス構造に基づいてパラメーターを変更します。
お役に立てば幸いです。
Ruby 1.9.3-p194およびRuby on Rails 3.2.6の使用:
request.fullpathが機能しない場合は、request.env ["HTTP_REFERER"]を試してください
以下が私の話です。
たとえば、さまざまなコントローラーからの情報を組み合わせた累積ページの現在のURL(ユーザーのブラウザーのアドレスバーに表示されます)を検出すると、同様の問題が発生しましたhttp://localhost:3002/users/1/history/issues。
ユーザーは、問題の種類の異なるリストに切り替えることができます。これらすべてのリストは、Ajaxを介してさまざまなコントローラー/部分からロードされます(リロードなし)。
問題は、リストの各アイテムで[戻る]ボタンの正しいパスを設定して、[戻る]ボタンが独自のページと累積ページ履歴の両方で正しく機能するようにすることでした。
request.fullpathを使用する場合は、最後のJavaScriptリクエストのパスを返しますが、これは探しているURLではありません。
そこで、最後にリロードされたリクエストのURLを格納するrequest.env ["HTTP_REFERER"]を使用しました。
これは、決定を行うための部分からの抜粋です
- if request.env["HTTP_REFERER"].to_s.scan("history").length > 0
  - back_url = user_history_issue_path(@user, list: "needed_type")
- else
  - back_url = user_needed_type_issue_path(@user)
- remote ||= false
=link_to t("static.back"), back_url, :remote => remoteこれはRuby on Rails 3.0で機能し、Ruby on Railsのほとんどのバージョンでサポートされています。
request.env['REQUEST_URI']rubyメソッドを使用できます。
:root_urlこれは、ベースURLを含む完全なパスを取得します。
localhost:3000/bla:root_urlを取得するために何かを使用するときに、渡すURLを絶対URLに制限する方法を教えてください。私はのようなのsomethinをusinだと仮定some_method(:products_brand_url, brand: brand, entity_name: "brand")し、some_method私のような表情に私のルートを望んでいない`デフsome_method(ルート、OPTS = {})最後`として定義されています- http://localhost:3000/brands/brand_name?&entity_name="brand"。ルートを次のようにしたいですhttp://localhost:3000/brands/brand_name。私entity_nameは、絶対URLのパラメータとしてではなく、optsハッシュの一部にしたいだけです。
                    root_url。
                    Rails 3では、あなたは使うことができます
request.original_urlhttp://apidock.com/rails/v3.2.8/ActionDispatch/Request/original_url
request.env["REQUEST_URI"]テスト済みのレール2.3.4で動作し、他のバージョンについては認識していません。