RailsアプリでCancan+Deviseを使用しています:
nil
コメントレコードを更新しようとすると問題が発生します。ログに記録されていても、initializeメソッドのユーザーパラメータが常に表示されると思います。
Ability.rb
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # guest user
unless user.nil?
if user.role.name == "admin"
can :manage, :all
elsif user.role.name == "atendimento"
can :manage, Comment
end
end
end
end
Better_errors
最後に、このエラーが発生します。
誰もがこの問題に直面していますか?誰かが私を助けることができますか?
Rails 3.2.8 Devise 2.1.0 CanCan 1.6.9 Ruby 1.9.3p385
編集1
CommentsController.rb
class CommentsController < ApplicationController
authorize_resource :only => [:index, :show,:new,:edit, :create,:update,:destroy, :approve, :moderate, :disapprove]
layout "admin"
編集2
やあみんな、コントローラーがajaxリクエストを受信すると、CanCanはうまく抜粋して動作します。
Comments.js
var request = $.ajax({
url: url_to_request,
type: "PUT",
data: {id : id_to_send, answer : answer_to_send, question : question_to_send },
dataType: "json"
});
config / routers.rb
resources :comments do
member do
put 'approve'
put 'moderate'
put 'disapprove'
end
end