ruby-on-rails - Rails 选择值

标签 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' %>

这些角色在我的模型中定义:

enum role: {user: 0, profile_user: 1}

现在,在我的下拉列表中,当用户选择时,它会显示 userprofile_user 作为下拉选项。

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

例如:

在下拉菜单中,我宁愿显示“我是一名教师”,它映射到用户

在下拉菜单中,我宁愿显示“我来这里学习”,它映射到profile_user

最佳答案

在您的模型中添加叙述性描述。

NARRATIVE_ROLES = {user: 'I am a teacher', profile_user: 'I am here to learn'}

添加一个方法来创建 select_array

def self.roles_select
  User.roles.keys.map {|role| [NARRATIVE_ROLES[role], role]}
end

然后在您使用的选择中

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

关于ruby-on-rails - Rails 选择值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48131815/

相关文章:

ruby-on-rails - Haml:更优雅的标签+ruby-expression+字符串的写法

ruby-on-rails - Rails 中是否有多元化的帮助方法?

ruby - 如何将 ActiveSupport::SafeBuffer 转换为字符串?

ruby - 使用 Gemfile 进入文件夹时如何调用 RVM?

python - 什么是 Ruby 等同于 Python 的多处理模块?

ruby-on-rails - Shrine gem - 如何从 s3 中删除上传的图像

ruby-on-rails - rails : force specific id for new record (or change id of existing)

ruby-on-rails - 事件关系 : undefined method `city'

ruby-on-rails - Rails 表单仅在日期时间选择字段中显示 future 日期

ruby-on-rails - heroku 使用 Devise 部署 NameError