web-dev-qa-db-ja.com

rails)で現在のルートを取得する方法

私はいくつかのRailsサンプルアプリケーションを構築しています。このサンプルでは、​​ユーザーとプロジェクトの2つのモデルがあります。両方の関連付けはユーザーhas_manyプロジェクトです。ここで問題は、ユーザーのプロジェクトにドロップダウンを提供する用意があることです。上部にあるものをクリックすると、プロジェクトの表示ページに移動します。ただし、ユーザーが1つのプロジェクトの編集ページにいて、ドロップダウンから別のプロジェクトを選択した場合は、表示のために同じケースで新しく選択したプロジェクトの編集ページにアクセスしてください。私が探している解決策は次のとおりです:-params [:controller]を使用して現在のコントローラーを見つける、params [:action]を使用して現在のアクションを見つける方法現在のルートを見つける方法。よろしくお願いします。

誰かが私のコードを知りたい場合:-ここにgithubのリンクがあります:-' https://github.com/peeyushsingla/session_test.git/ ここでは単純なリンクを使用していますが、実際にはすべての編集、表示、新しいすべてのアクションで機能する単一のドロップダウンが表示されます

12
peeyush singla

URLを取得するには:

# Current URL:
request.original_url

# Current relative URL:
request.request_uri

さらに、current_pageメソッドを使用して、特定のルートにいるかどうかを確認できます。

current_page?(my_path)
# => true / false

For Rails 4 use:

# Current URL:
request.original_url

# Current relative URL:
request.fullpath
24
davegson

For Rails 4

URLの例:http://localhost:3000/allreferred?&referred_name=maria

request.path -> "/allreferred"

request.base_url -> "http://localhost:3000"

request.fullpath -> "/allreferred?&referred_name=maria"

request.original_url -> "http://localhost:3000/allreferred?&referred_name=maria"

25
Abel

Url_forを使用できます

_def current_path(params={})
  url_for(request.params.merge(params))
end
_

URLの例_http://localhost:3000/posts_

_current_path -> /posts_

current_path(order: asc) -> /posts/?order=asc

3