2012-07-28 4 views
1

나는 언어 목록을 포함하는 simple_form 콜렉션을 가지고 있습니다. 기본적으로 '독일어'를 선택하고 싶지만 simple_form의 selected : 옵션에는 id가 필요합니다. 나는 '독일인'이라는 이드를 얻을 수 있었지만 그럴 필요가 없다고 희망했다.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' } 

모든 예를 나는 발견했습니다 지난 1 시간 동안 이드를 포함합니다. 이름을 통해 선택하는 방법의 한 가지 예가 아닙니다.

답변

6

예, SimpleFormselected 옵션에 대해 proc를 허용 할 수 있습니다. 귀하의 경우 코드는 다음과 같습니다.

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

고마워요! 매우 도움이됩니다. –

+0

완벽하게 작동합니다! – Shane

관련 문제