Ryan Bates は CanCan の開発をやめたようです。Rails 4 は完全にサポートされていません。そして、ready4rails4 は動作しないと言っています。
CanCan を別の承認ライブラリに置き換える必要がありますか?
よろしく
Ryan Bates は CanCan の開発をやめたようです。Rails 4 は完全にサポートされていません。そして、ready4rails4 は動作しないと言っています。
CanCan を別の承認ライブラリに置き換える必要がありますか?
よろしく
あなたが言及した理由、未解決の問題と未解決のプルリクエストが多すぎるため、私は新しいプロジェクトでCanCanを使用しなくなりました。
Ryan の「Authorization From Scratch」RailsCasts を参照してください。
次のコード スニペットも役立つ場合があります。
ライブラリ/エラー/
module Errors
class NotAuthorizedError < StandardError; end
end
アプリ/コントローラー/application_controller.rb
class ApplicationController < ActionController::Base
def authorize(record)
raise Errors::NotAuthorizedError unless policy(record).public_send(params[:action] + "?")
end
def policy(record)
"#{record.class}Policy".constantize.new(current_user, record)
end
end
アプリ/ポリシー/user_policy.rb
class UserPolicy
attr_reader :user, :current_user
def initialize(current_user, user)
@current_user = current_user
@user = user
end
def update?
user == current_user
end
end
アプリ/コントローラー/
class UsersController
def update
@user = User.find(params[:id])
authorize(@user)
# etc
end
end
私が現在すべての新しいアプリで使用しているこのソリューションは、次の優れた記事に基づいています: http://www.elabs.se/blog/52-simple-authorization-in-ruby-on-rails-apps . 実装とテストが非常に簡単なので、アプリケーションのニーズに簡単に適応させることができます。
CanCanの代わりに頑張ってください。