使用枚举时修改simple_form输入中显示的文本

Ant*_*yrd 5 forms enums ruby-on-rails simple-form

我正在使用simple_form来管理我的用户.为了选择用户角色,我使用输入为:: radio_button.

该集合来自用户模型的枚举.如何修改文本以显示特定的内容,如"超级管理员"而不是super_admin?

_form.html.slim

= form.input :role, collection: User.roles, as: :radio_buttons, item_wrapper_class: 'btn btn-default', checked: User.roles[user.role], required: true
Run Code Online (Sandbox Code Playgroud)

user.rb

  enum role: [:super_admin, :admin, :generic]
Run Code Online (Sandbox Code Playgroud)

小智 5

您可以将label_method选项与集合一起使用

= form.input :role, collection: User.roles, label_method: lambda {|k| k.humanize}, as: :radio_buttons, item_wrapper_class: 'btn btn-default', checked: User.roles[user.role], required: true
Run Code Online (Sandbox Code Playgroud)