выбрана простая_форма: по имени

У меня есть коллекция simple_form, которая содержит список языков. Я хочу выбрать «Немецкий» по умолчанию, но для параметра selected: в simple_form требуется идентификатор. Я мог бы получить идентификатор «немца», но надеюсь, что в этом нет необходимости.

= f.association :language, selected: // not sure what to put here

Это работает, но воняет (я НЕ буду использовать такой ужасный код):

= f.association :language, selected: Language.where("name = 'German'").first.id

Я бы надеялся на что-то вроде:

= f.association :language, selected: { |lan| lan.name == 'German' }

Каждый пример, который я нашел за последний час, связан с идентификатором. Ни одного примера того, как выбирать по имени.


person Damien Roche    schedule 28.07.2012    source источник


Ответы (1)


Да, SimpleForm может принять прок для варианта selected. В вашем случае код такой:

= f.association :language, selected: lambda { |lan| lan.name == 'German' }
person Vasiliy Ermolovich    schedule 28.07.2012