В Rails есть ли лучший способ предварительно заполнить значение ввода, используя вложенные параметры? - PullRequest
0 голосов
/ 02 декабря 2011

Допустим, у меня есть это в виде:

<%= text_field_tag 'foo', params[:foo] %>

Конечно, это предварительно заполняет значение ввода, используя значение params для 'foo'.Однако я использую некоторые вложенные / массивы для входных имен:

<%= text_field_tag 'filters[person][name]' %>

Поскольку params [: filters] и / или params [: filters] [: person] могут отсутствовать, чтобыпредварительно заполнить значение, есть ли лучший способ указать значение, чем следующий?

<%= text_field_tag 'filters[person][name]', (params[:filters][:person][:name] if params[:filters] && params[:filters][:person])  %>

Это очень быстро запутывается, когда требуется больше уровней.Благодаря.

1 Ответ

1 голос
/ 02 декабря 2011

Заменить:

 (params[:filters][:person][:name] if params[:filters] && params[:filters][:person])

На:

 params[:filters].try(:[],:person).try(:[],:name)

Обратите внимание, что вы можете создать симпатичного помощника на основе метода try.

...