Rails 5 - в link_to, как передать ноль (NULL) параметр? - PullRequest
0 голосов
/ 20 мая 2018

У меня есть ссылка, где мне нужно передать последовательность параметров, где 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?Я думал о том, чтобы поместить туда 0 s вместо nil s, а затем вручную проанализировать его в действии контроллера, но это довольно уродливое решение.

1 Ответ

0 голосов
/ 20 мая 2018

Вы можете передать hash как второй вариант с идентификатором в вашем маршруте

Использовать

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
...