rails管理员自定义选择

时间:2014-10-15 14:28:40

标签: ruby-on-rails rails-admin

在rails_admin中,模型之间的关联由2个选择字段表示。您可以将项目从一个字段移动到另一个字段并保存对象之间的引用。这些字段由对象的“名称”填充,如果“name”为空,则由对象的id填充。如何更改此逻辑以填充其他对象字段的选择。

e.g。我有2个型号。用户和帖子(多对多)。用户始终具有非空“电子邮件”字段,“名称”字段有时为空。那么我检查Post对象并想要查看相关用户。某个用户的名称为空,所以我看到“id”。是否可以在此演示文稿中将“名称”替换为“电子邮件”?

1 个答案:

答案 0 :(得分:2)

根据评论更新了答案

Post模型中的类似内容:

def display_name
  user.name.blank? ? user.email : user.name
end

这将创建一个检查用户名称是否为空的方法。如果是,请显示用户的电子邮件。否则,显示用户名。当您显示帖子时,可以拨打post.display_name


email上创建Post列后,您可以遍历post并获取用户的电子邮件:

Post.all.each do |p|
  u = p.user
  email = u.email
  p.email = email
  p.save
end

<小时/> 您可以通过添加其他列来创建email列:

rails g migration add_email_to_posts email:string

或者通过重命名现有列(在迁移文件中):

rename_column :posts, :name, :email