use*_*621 5 ruby parameters routes ruby-on-rails link-to
我有一个链接,我需要传递一系列参数,其中2个参数始终是nill.
link_to go_to_action_path(id, par_01, par_02, par_03, par_04)
Run Code Online (Sandbox Code Playgroud)
在某些情况下是par_01和par_02 nil在其他par_03和par_04.
如果我在变量中有这些值:
par_01 = nil
par_02 = nil
par_03 = 'a'
par_04 = 'b'
Run Code Online (Sandbox Code Playgroud)
然后在go_to_action行动中:
p01 = params[:par_01]
p02 = params[:par_02]
p03 = params[:par_03]
p04 = params[:par_04]
Run Code Online (Sandbox Code Playgroud)
我得到这些值:
p01 => a
p02 => b
p03 =>
p04 =>
Run Code Online (Sandbox Code Playgroud)
换句话说,变量par_01和par_02将被扔掉,并在他们的地方将被移动par_03和par_04.
如何强制link_to接受带有nil值的参数?我正在考虑放置0s而不是nils然后在控制器动作中手动解析它,但这是一个非常难看的解决方案.
您可以hash通过路线中的 id 作为第二个选项
使用
link_to go_to_action_path(id, { par_01: par_01, par_02: par_02, par_03: par_03, par_04: par_04 })
代替
link_to go_to_action_path(id, par_01, par_02, par_03, par_04)
然后,在控制器中,说操作名称是action
# here you can use your params
def action
p01 = params[:par_01]
p02 = params[:par_02]
p03 = params[:par_03]
p04 = params[:par_04]
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
282 次 |
| 最近记录: |