我有一个链接,我需要在其中传递一系列参数,其中 2 个参数始终为空。
link_to go_to_action_path(id, par_01, par_02, par_03, par_04)
在某些情况下是 par_01
和 par_02
nil
,在其他情况下是 par_03
和 par_04
.
如果我在变量中有这些值:
par_01 = nil
par_02 = nil
par_03 = 'a'
par_04 = 'b'
然后在 go_to_action
Action 中:
p01 = params[:par_01]
p02 = params[:par_02]
p03 = params[:par_03]
p04 = params[:par_04]
我得到这些值:
p01 => a
p02 => b
p03 =>
p04 =>
换句话说,变量 par_01
和 par_02
将被丢弃,它们的位置将被移动到 par_03
和 par_04
.
如何强制 link_to
接受具有 nil
值的参数?我正在考虑将 0
放置在那里而不是 nil
,然后在 Controller 操作中手动解析它,但这是一个非常丑陋的解决方案。
最佳答案
您可以将 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)
然后,在 Controller 中,说操作名称是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
关于ruby-on-rails - Rails 5 - 在 link_to 中,如何传递 nil (NULL) 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50436177/