我的控制器操作如下
def method params
//work with params
end
我想将参数从routes.rb传递给控制器
get '/link' , to: 'controller#method'
并且我不希望参数出现在 URL 中。
get '/link' , to: 'controller#method', as: :my_link
使用路由助手传递参数
<%= link_to 'My Link', my_link_path(param_1: "abc", param_2: "xyz")%>
网址看起来像
http://localhost:300/link?param_1=abc&¶m_2=xyz
在controller#method你可以得到这些参数
params[:param_1] = "abc"
params[:param_2] = "xyz"
也许您正在寻找
defaults:
选项?
来自 https://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Base.html.
# Sets params[:format] to 'jpg' by default
match 'path', to: 'c#a', defaults: { format: 'jpg' }, via: :get
或使用你的例子:
get '/link' , to: 'controller#method', defaults: { param_name: 'param_default_value' }
从我本地测试来看,该参数没有显示在浏览器的路径中。