活动管理员编辑表单未预填充 belongs_to 关系

active admin edit form not pre-populating belongs_to relationship

我正在使用 Rails 4,并且我在活动管理中有一个表单,该表单不会预先填充或将关系数据加载到编辑表单中。如果我不定义一个表单,那么活动管理员加载的默认值会定义,但它显示的是对象而不是 object.name 例如,所以我开始编辑它。

这是我的

form do |c|
  c.semantic_errors *c.object.errors.keys
  c.inputs "Event" do
    c.input :title
    c.input :date, :as => :datetime_picker, :local => true 
    c.input :description
  end
  c.inputs "Training Request" do
    c.inputs :for => [:training_request, c.object.training_request || c.object.build_training_request] do |w|
      list_of_training_requests = TrainingRequest.fulfilled.collect {|t| t.host.name }
      w.input :id, as: :select, :collection => list_of_training_requests
    end
  end
  c.inputs "Trainer" do
    c.inputs :for => [:trainer, c.object.trainer || c.object.build_trainer] do |x|
      list_of_trainers = Trainer.qualified.collect {|t| t.name }
      x.input :id, as: :select, :collection => list_of_trainers
    end
  end
  c.actions
end

表单加载时没有任何错误,并且确实列出了数据而不是数据库中设置的数据,例如

如果有人能指出我正确的方向,将不胜感激。

如果原始表单的唯一问题是它只显示对象而不是名称,您可以在模型中覆盖 to_s。例如:

class Trainer < ActiveRecord::Base
  def to_s
    name
  end
end

然后当您调用 Trainer 的实例时,它应该显示名称 属性。