更改 Rails 管理员字段中的值格式

Changing Value Formatting in Rails Admin's Fields

我的 User 模型有一列显示直接从数据库提取的 phone_numbers。我希望我的 Rails 管理员显示这些格式化的数字。

例如: `Current` => `What I want` 1234567890 => (123) 456-7890

这是目前我的 rails_admin.rb 文件中的内容:

  config.model User do
    list do
      field :id
      field :full_name
      field :email
      field :phone_number
    end

我尝试从 wiki (https://github.com/sferik/rails_admin/wiki/Fields) 实现虚拟字段,但没有成功

# From users.rb - User Model
  def phone_number_formatted
    #method to format number
  end

  # From rails_admin.rb
  config.model User do
    list do
      field :id
      field :full_name
      field :email
      field :phone_number_formatted, :phone_number
    end

有什么建议吗?任何帮助是极大的赞赏。谢谢!

再次查看 wiki,您将看到 Just define them as methods on your model, then configure a field of the same name.

所以,只需在您的用户模型中定义一个 phone_number_formatted 方法

并在 rails_admin.rb

中使用 field :phone_number_formatted

如果您想保留 rails 管理格式逻辑,您可以这样做

  config.model User do
    list do
      field :id
      field :full_name
      field :email
      field :phone_number do
        formatted_value do
          value.split('-') # Or whatever you want to do
        end
      end
    end