【发布时间】:2018-10-30 08:41:51
【问题描述】:
我有一个链接,我需要传递一系列参数,其中 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 操作中:
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 值的参数?我正在考虑将 0s 放在那里而不是 nils 然后在控制器操作中手动解析它,但这是一个非常丑陋的解决方案。
【问题讨论】:
-
不确定我们是否有足够的时间继续进行。
go_to_action_path是什么?是路线吗?如果是这样,是什么?如果是方法,我们需要源代码。 -
这是一个控制器动作的路径示例(是的,它是一个路由)。以上是伪代码。这里的问题是如何通过参数传递
nil值并在控制器操作的另一端“接收”它。 -
Nimish 的答案可能是正确的,但看看控制器的动作真的很有帮助。否则我们只能猜测。
-
您是否尝试过在您的 ERB 中使用
&?简单地说,即使参数是nil,它也能让代码工作。
标签: ruby-on-rails ruby parameters routes link-to