我将ActiveAdmin设置为管理网站上的用户,而Friendly_id设置为可读网址。当我转到/ admin / users时,会抛出此错误:
Undefined method `per' for #<User::FriendlyIdActiveRecordRelation:0x007fdb61a38d30>
如何在用户模型中设置friendly_id:
class User < ActiveRecord::Base
#...
extend FriendlyId
friendly_id :name, use: :slugged
end
我可以找到这两个宝石之间冲突的唯一资源是这个问题ActiveRecord::ReadOnlyRecord when using ActiveAdmin and Friendly_id,这似乎是一个不同的问题,解决方案在我的案例中并不起作用。有关如何解决此问题的任何建议吗?
答案 0 :(得分:1)
我能够修复它this way:
除非您使用:finders addon,否则您应该修改使用FriendlyId的模型的管理控制器,其类似于以下内容:
controller do
def find_resource
scoped_collection.friendly.find(params[:id])
end
end
答案 1 :(得分:0)
我发现这实际上不是friendly_id
的问题,而是will_paginate
,如https://github.com/gregbell/active_admin/issues/670所述。切换到kaminari
以进行分页可以解决我的问题。
答案 2 :(得分: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