2013-05-15 4 views
3

Возможно ли обрезать данные, отображаемые для атрибута на странице индекса 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 

Но я получаю ошибку, что метод «усечения» не существует.

ответ

8

Там нет необходимости, чтобы скрыть столбец, вы можете использовать любые помощник в ActiveAdmin, вот мой случай с комментариями пользователей в ../admin/ пользователь /: 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 боль сидеть Амет, consectetuer adipiscing Элит, СЭД диам 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

Привет! Я пытаюсь адаптировать ваш пример. Но это не работает из-за разума. Я получаю эту ошибку ... "undefined method 'truncate'" Я отредактировал исходный вопрос, чтобы вы могли видеть код. – niftygrifty

+0

см. Отредактированный ответ, я только что протестировал в своем приложении, должен работать с копией/вставкой – rmagnum2002

+0

@niftygrifty Смотрите [Undefined method 'truncate' in model] (http://stackoverflow.com/a/29055796/1350377). Попробуйте 'post.body.truncate 100' вместо' truncate (post.body, length: 100) ' –

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 
+0

Большое спасибо за ваш совет! Похоже, что то, чего я специально прошу, пока не существует. Но ваше решение хорошо работает для меня в этом случае, поэтому я собираюсь с ним! @James – niftygrifty

Смежные вопросы