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])