Ruby on rails Rails选择值

Ruby on rails Rails选择值,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,我在表格中有一个选择选项: <%= f.select :role, options_for_select(User.roles.keys.to_a, params[:role]), {}, class: 'form-control form-control-lg roleSelect' %> 现在,在我的下拉列表中,当用户选择时,它显示user和profile\u user作为下拉选项 有没有办法在下拉列表中显示另一个值来表示这些值 例如: 在下拉列表中,我宁愿显示映射到用户的“我

我在表格中有一个选择选项:

<%= f.select :role, options_for_select(User.roles.keys.to_a, params[:role]), {}, class: 'form-control form-control-lg roleSelect' %>
现在,在我的下拉列表中,当用户选择时,它显示
user
profile\u user
作为下拉选项

有没有办法在下拉列表中显示另一个值来表示这些值

例如:

在下拉列表中,我宁愿显示映射到
用户的“我是一名教师”


在下拉列表中,我更愿意显示“我在这里学习”,其中映射到模型中的
profile\u user

添加叙述性描述

NARRATIVE_ROLES = {user: 'I am a teacher', profile_user: 'I am here to learn'}
添加一个方法来创建select_数组

def self.roles_select
  User.roles.keys.map {|role| [NARRATIVE_ROLES[role], role]}
end
然后在菜单中选择您使用的

options_for_select(User.roles_select, params[:role])
或者(稍微简单一点)

可能重复的
options_for_select(User.roles_select, params[:role])
NARRATIVE_ROLES = {'I am a teacher' => :user, 'I am here to learn' => :profile_user}

options_for_select(User::NARRATIVE_ROLES, params[:role])