关联表的Rails Admin自定义列

时间:2018-06-29 13:02:04

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

我正在使用Ruby 2.3,Rails 4.2.7和rails-admin 1.2.0

我在列表中显示关联列时遇到问题。

Class Address < ActiveRecord::Base
  belongs_to :user

  # Have to write custom because Rails Admin doesn't allow to add multiple columns from the association table.
  def custom_column
    self.user.email
  end

  rails_admin do
    list do
      include_fields # it only works on the current model
      field :id
      field :custom_column
      field :user
      field :address
    end
  end
end

自定义列始终位于最后一列。有什么办法可以将列放在任何位置?自定义列属于用户模型。

1 个答案:

答案 0 :(得分:0)

我为此做了一个解决方法。在一列中包含用户的多列。

field :user do
  column_width 400
  queryable true
  searchable [:name, :email]
  pretty_value do
    path = bindings[:view].show_path(model_name: 'User', id: bindings[:object].user.id)
    bindings[:view].tag(:a, href: path) << "#{value.name} - (#{value.email})"
  end
end

通过这种方式,我既可以通过姓名,电子邮件进行搜索,又可以在与管理员模型中的用户模型相同的位置进行搜索。