在ActiveAdmin索引页面中截断数据

时间:2013-05-15 03:15:37

标签: activeadmin

是否可以在ActiveAdmin索引页面中截断为属性显示的数据?我的一个属性包含大量文本,因此它使索引页面上的表格布局难以查看。

我正在尝试这个......

ActiveAdmin.register Post do
  index do
      column :id
      column :title
      column :body do |body|
        truncate(body, omision: "...", length: 100)
      end
      column :author
    end
end

但是我得到了'truncate'方法不存在的错误。

3 个答案:

答案 0 :(得分:8)

无需隐藏列,​​您可以在ActiveAdmin中使用任何帮助程序,这是我的情况,用户评论在../ admin / user /:id:

  ActiveAdmin.register User do
    panel "Coments" do
      table_for user.comments do
        column :id
        column "comment" do |comment|
          truncate(comment.content, omision: "...", length: 100)
        end
        column "created at" do |comment|
          l comment.created_at, format: :long
        end
      end
    end
  end

将导致:

“Lorem ipsum dolor sit amet,consectetuer adipiscing elit,sed diam nonummy nibh euismod tincidunt ......”

ActiveAdmin.register Post do
  index do
      column :id
      column :title
      column :body do |post|
        truncate(post.body, omision: "...", length: 100)
      end
      column :author
    end
end

答案 1 :(得分:0)

尝试不在索引页

中显示该列
ActiveAdmin.register YourModel do
  index do
    selectable_column
    column :id do |item| eval"link_to item.id, admin_#{item.class.name.to_s.underscore}_path(item)" rescue nil end rescue nil
    column :name
    # ... all other columns you want to display
    column :created_at
    column :updated_at

    default_actions
  end
end

答案 2 :(得分:0)

我知道这很老了,但是更简单的方法是:

ActiveAdmin.register Post do
  index do
      column :id
      column :title
      column :body do |post|
        post.body[0...100]
      end
      column :author
    end
end