Rails 中有一个match方法专门用于设置路由。它有几个选项::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
在控制器中获取所有这些方法选项?