活动管理员编辑表单未预填充 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
的实例时,它应该显示名称 属性。
我正在使用 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
的实例时,它应该显示名称 属性。