0

サイト上のユーザーを管理するために ActiveAdmin をセットアップし、読み取り可能な URL 用に 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

これら2つのgem間の競合について見つけることができる唯一のリソースは、この質問ActiveRecord::ReadOnlyRecord when using ActiveAdmin and Friendly_idです。これは別の問題のようで、私の場合は解決策が機能しません。これを解決する方法について何か提案はありますか?

4

3 に答える 3

2

この方法で修正できました:

:finders アドオンを使用しない限り、FriendlyId を使用するモデルの管理コントローラーを次のように変更する必要があります。

controller do
  def find_resource
    scoped_collection.friendly.find(params[:id])
  end
end
于 2015-07-25T13:15:33.730 に答える
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
于 2014-10-23T09:21:40.983 に答える
0

実際には問題ではなく、friendly_idここwill_paginateで述べたようにhttps://github.com/gregbell/active_admin/issues/670であることがわかりました。ページネーションに切り替えるとkaminari、問題が解決します。

于 2013-03-25T22:01:46.207 に答える