如何从 Rails 中的路由将参数传递给控制器?

问题描述 投票:0回答:2

我的控制器操作如下

def method params
  //work with params
end

我想将参数从routes.rb传递给控制器

get '/link' , to: 'controller#method'

并且我不希望参数出现在 URL 中。

ruby-on-rails ruby
2个回答
4
投票
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&&param_2=xyz

在controller#method你可以得到这些参数

params[:param_1] = "abc"
params[:param_2] = "xyz"

0
投票

也许您正在寻找

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' }

从我本地测试来看,该参数没有显示在浏览器的路径中。

© www.soinside.com 2019 - 2024. All rights reserved.