如何通过rails_admin中的id获取用户名?

时间:2015-08-18 18:48:16

标签: ruby-on-rails rails-activerecord rails-admin

我有模型UserArticle

User具有以下关联:

class User < ActiveRecord::Base
  has_many :articles

Article&#39; s:

class Article < ActiveRecord::Base
  belongs_to :user, required: true

我使用 rails_admin 作为控制面板,并在rails_admin.rb中自定义必填字段,如下所示:

  config.model Article do
    list do
      field :id
      field :title
      field :user_id
      field :created_at
    end
  end

但是如何实现,而不是:user_id显示用户的名称?我的数据库中有一个username字段。

谢谢!

2 个答案:

答案 0 :(得分:1)

Article模型中,您可以添加一个返回user_name的自定义方法:

def user_name
  self.user.username
end

然后,您可以在管理员中使用此user_name字段,就像其他模型属性一样:

config.model Article do
  list do
    field :id
    field :title
    field :created_at
    field :user_name
 end
end

答案 1 :(得分:0)

这是另一个刺痛......

Rails_admin在模型上查找“名称”或“标题”字段,如果没有,它将显示有点丑陋的“用户#1”。

您在用户模型中需要做的就是添加以下方法:

def title
  try(:username)
end

我想回到本演示文稿,了解Rails管理员的最佳做法:http://www.slideshare.net/benoitbenezech/rails-admin-overbest-practices

这有点过时但你需要的一切都在那里(对你的案子来说是第14页)