2013-03-23 3 views
0

У меня есть ActiveAdmin, настроенный для управления пользователями на сайте, и Friendly_id для чтения URL. Когда я иду в/администратора/пользователей, он выдает эту ошибку:Рельсы: ActiveAdmin не работает с Friendly_id

Undefined method `per' for #<User::FriendlyIdActiveRecordRelation:0x007fdb61a38d30> 

Как friendly_id устанавливается в модели пользователя:

class User < ActiveRecord::Base 
    #... 
    extend FriendlyId 
    friendly_id :name, use: :slugged 
end 

Единственный ресурс, я мог бы найти для конфликта между этими 2 gems - это вопрос ActiveRecord::ReadOnlyRecord when using ActiveAdmin and Friendly_id, который выглядит как другая проблема, и решение не работает в моем случае. Любые предложения по устранению этого?

ответ

0

Я понял, что на самом деле это не проблема с friendly_id, но с will_paginate, как упомянуто здесь https://github.com/gregbell/active_admin/issues/670. Переключение на kaminari для разбивки на страницы решает проблему для меня.

0

Я также столкнулся с этой проблемой и обнаружил, что friendly_id переопределяет метод to_param, поэтому просто переопределите его. меня устраивает.

ActiveAdmin.register User do 
    before_filter do 
    User.class_eval do 
     def to_param 
     id.to_s 
     end 
    end 
    end 
end 
1

я смог исправить this way:

Unless you use the :finders addon, you should modify your admin controllers for models that use FriendlyId with something similar to the following:

controller do 
    def find_resource 
    scoped_collection.friendly.find(params[:id]) 
    end 
end 
Смежные вопросы