gpt4 book ai didi

ruby - ActiveAdmin 集合名称

转载 作者:数据小太阳 更新时间:2023-10-29 08:56:40 24 4
gpt4 key购买 nike

我的模型中有一系列角色:

ROLES = ['super_admin', 'user', 'user_admin']

我有一个显示这些角色的 ActiveAdmin 表单:

input :roles, as: :check_boxes, collection: User::ROLES

我必须在表格中将角色显示为人性化的大写名称,而不是蛇形:

Super Admin, Salesman, Sales Admin

但是当其中之一被选中时,它必须保存在snakecase中。

我已经试过了:

User::ROLES
.map { |r| "#{r.humanize}" }
.map { |r| r.split.map(&:capitalize).join(' ') }

但这将角色保存为人性化的大写形式,而不是蛇形形式。我怎样才能在表格上使用人性化、大写的单词版本,但保存蛇形版本?

最佳答案

您可以使用Rails(Active Support) 方法 String#titleize 而不是 split.map(&:capitalize).join(' ')

如果你想将记录存储在数据库中作为 snakecase 你可以这样做:在下拉选项中它将显示为 titalize 但它的值将设置为 snakecase 将存储在数据库中。

> roles.map{|e|[e.titleize, e]}
#=> [["Super Admin", "super_admin"], ["User", "user"], ["User Admin", "user_admin"]]

在 activeadmin 中使用:

input :roles, as: :check_boxes, collection: User::ROLES.map{|e|[e.titleize, e]}

关于ruby - ActiveAdmin 集合名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53493029/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com