Rails には、ルートを設定する専用のmatchメソッドがあります。、、 など、いくつかのオプションがあります。そのうちの 1 つが:controller
オプションです。:action
:via
:as
:なので
ルーティング ヘルパーの生成に使用される名前。
たとえば、次のようなルート設定があります。
match("user/hello' => "users#show",
via: 'get',
:as => :user_hello,
)
このオプションを使用すると、テンプレート:as
でこれを実行できます。html.erb
<%= link_to("User Hello", user_hello_path()) %>
レンダリングされたページでこれを取得します。
<a href="user/hello">User Hello</a>
しかし、このヘルパーのデフォルトの動作を変更したいと思います。生成された URL にプレフィックスを追加して、次のようにします。
<a href="myprefix/user/hello">User Hello</a>
問題は、:as
ヘルパー モジュール ファイルでその変数を取得する方法です。
# File: C:\MyApp\app\helpers\users_helper.rb
module UsersHelper
# I explicitly redefine the default helper
# but can't get :as option here
def user_hello_path
"myprefix/" + :as.to_s # <-- how to get the ":as" option here
end
end
また、コントローラーでこれらすべてのmatch
メソッドオプションを取得する方法は?