选择simple_form:按名称

Dam*_*che 1 ruby-on-rails-3 simple-form

我有一个simple_form集合,其中包含一系列语言.我想默认选择"德语",但simple_form中的selected:选项需要一个id.我可以获得'德国'的id,但希望没有必要.

= f.association :language, selected: // not sure what to put here
Run Code Online (Sandbox Code Playgroud)

这有效,但很臭(我不会使用这种恶劣的代码):

= f.association :language, selected: Language.where("name = 'German'").first.id
Run Code Online (Sandbox Code Playgroud)

我希望有类似的东西:

= f.association :language, selected: { |lan| lan.name == 'German' }
Run Code Online (Sandbox Code Playgroud)

我在过去一小时内发现的每个例子都涉及id.没有一个如何通过名称选择的例子.

Vas*_*ich 6

是的,SimpleForm可以接受proc selected选项.在您的情况下,代码是:

= f.association :language, selected: lambda { |lan| lan.name == 'German' }
Run Code Online (Sandbox Code Playgroud)