【问题标题】:ActiveAdmin 'show' layout not same as edit / newActiveAdmin“显示”布局与编辑/新建不同
【发布时间】:2014-10-02 16:45:47
【问题描述】:

我已经为新建/编辑自定义表单以使用表单字段的两列布局。 自定义使用formtastic。

默认情况下“显示”不应该显示相同的布局吗?相反,我得到了每行显示的 activeadmin 默认一个字段。 如何在“显示”中显示与表单(新/编辑)页面相同的布局?

【问题讨论】:

  • 你能提供你的布局截图吗?
  • @nistvan 添加了两栏布局截图。

标签: activeadmin


【解决方案1】:

默认情况下,显示页面有自己的布局,所以你必须使用一些 css 来安排输入,或者你可以覆盖这个方法:

https://github.com/activeadmin/activeadmin/blob/master/lib/active_admin/views/components/attributes_table.rb#L22-L43

@collection.each_slice(2) do |records|
 td do
   content_for(record[0], block || title)
 end
 td do
   content_for(record[1], block || title)
 end
end

或者创建一个新的,并在显示块中使用它:

module ActiveAdmin
  module Views

    class AttributesTable < ActiveAdmin::Component
      builder_method :attributes_table_for

      def row_with_two_fields(*args, &block)
        title   = args[0]
        options = args.extract_options!
        classes = [:row]
        if options[:class]
          classes << options[:class]
        elsif title.present?
          classes << "row-#{title.to_s.parameterize('_')}"
        end
        options[:class] = classes.join(' ')

        @table << tr(options) do
          th do
            header_content_for(title)
          end
          @collection.each_slice(2) do |records|
            td do
              content_for(record[0], block || title)
            end
            td do
              content_for(record[1], block || title)
            end
          end
        end
      end
  end
end

或者类似的东西……我没试过。

【讨论】:

  • Nistvan,感谢您的指点。我意识到 CSS 更容易出路。
【解决方案2】:

我最终做了 CSS hack

show do
panel "Mandatory Details" do
attributes_table_for contract do
    row :account, :class => "column1"
    row :customer, :class => "column2"
end
end 
panel "Dates And Financials" do
    attributes_table_for contract do
        row :start_date, :class => "column1"
        row :current_end_date, :class => "column2"
        row :end_date_w_options, :class => "column1"
    end
  end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-22
    • 1970-01-01
    相关资源
    最近更新 更多