В Rails 5 есть способ изменить базовые параметры в контроллере?Или дать ему дефолт? - PullRequest
0 голосов
/ 01 марта 2019

В контроллере Rails 5 вы можете вызывать params, и он возвращает хеш параметров из запроса.

Но вы не можете таким образом изменять параметры.Потому что вы изменяете копию хеш-значений параметров, а не ссылку на базовые параметры.

params[:starting_value] ||= "abc" # doesn't work for my purposes

То, что вы должны делать, это хранить значения в другом месте.

@starting_value = params[:starting_value] || "abc"

Но если множество других мест в коде ожидают параметры [: начальный_значение], то это решение может потребовать некоторых грязных изменений.

Есть ли способ установить значение параметра по умолчанию вконтроллер?Или я собираюсь сделать это немного более грязным способом.

Я мог бы также выполнить то, что я хочу, с помощью перенаправления, но это тоже не идеально.

1 Ответ

0 голосов
/ 01 марта 2019

Я думаю, вы ищете метод merge!. Документы здесь

params = params.merge!(:starting_value, 'abc)

Возвращает исходные параметры с новым, объединенным или перезаписанным.Имейте в виду, что слияние без восклицательного знака не изменяется на месте.Вам нужно сохранить изменения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...