如何在Active Admin中向模型的默认行添加更多行,而不重写它们

时间:2014-01-20 11:12:54

标签: ruby-on-rails activeadmin

我想在Active Admin的show方法中添加除模型的所有(默认)行之外的一些额外行。

假设我有 Appointment 模型,其中包含以下属性:start_timeend_time。在Active Admin的show方法中未指定它们会将其显示为行,并提供其他信息:idcreated_atupdated_at以及默认操作。

如何在不重写先前属性的情况下添加用户名(例如)。其实我做了以下几点:

show do
    # Rewrite default rows (how not to rewrite them?)
    row(:id)
    row(:start_time)
    row(:end_time)
    row(:created_at)
    row(:updated_at)

    # Add new row
    row(:user) { |appointment| appointment.user.name }
end

谢谢,

2 个答案:

答案 0 :(得分:1)

可能会有所帮助,首先获取模型中的默认行,然后循环遍历每个行。然后添加所需的任何其他行

 show do |appointment|
   rows = default_attribute_table_rows
   attributes_table_for appointment do
     rows.each do |column|          
       row column
     end  
     if appointment.user.present?
      row("user")  {appointment.user.name}
    end
  end  
end  

答案 1 :(得分:0)

如果您不想丢失默认属性(数据库列),请执行以下操作:

show do
  attributes_table(*resource.attributes.keys) do
    row "My new row description" do
      My row value
    end
  end
end

您的新行将显示在表格底部