1

言語のリストを含む simple_form コレクションがあります。デフォルトで「ドイツ語」を選択したいのですが、simple_form の selected: オプションには ID が必要です。「ドイツ語」の ID を取得できましたが、それが必要ないことを願っています。

= 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 時間に見つけたすべての例には、id が含まれています。名前で選択する方法の一例ではありません。

4

1 に答える 1

6

ええ、オプションSimpleFormの proc を受け入れることができselectedます。あなたの場合、コードは次のとおりです。

= f.association :language, selected: lambda { |lan| lan.name == 'German' }
于 2012-07-28T19:03:23.190 に答える