Как обеспечить значение по умолчанию для частичных параметров в Rails? - PullRequest
0 голосов
/ 15 января 2019

Мне нужно отобразить разделяемый фрагмент, который может получить несколько параметров из нескольких представлений, но я не хочу каждый раз передавать все параметры. Если я вызываю шаблон без всех параметров, я получаю сообщение об ошибке.

Есть ли способ определить значения по умолчанию для параметров, только если они не были определены при вызове render 'name_of_partial?

Ответы [ 2 ]

0 голосов
/ 16 января 2019

Это должно сработать:

<% my_param ||= 'default value' %>

Часть, содержащая это, может быть визуализирована с или без предоставления my_param.

0 голосов
/ 15 января 2019

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

# in views/shared/template.html.erb
<% my_param = 'default_value' unless binding.local_variable_defined?(:my_param) %>
# Now you can call the partial with or without setting `my_param`

# Now you can call the partial without parameters...
<%= render 'shared/my_template' %>
# ...or with parameters
<%= render 'shared/my_template', my_param: 'non-default value' %>

Протестировано с Ruby 2.3.1 и выше.

...