【发布时间】:2013-02-19 01:28:20
【问题描述】:
我在我的 Rails 应用中使用 Cancan + Devise:
问题发生在我尝试更新评论记录时,我猜初始化方法的用户参数总是会出现nil,即使我已登录:
能力.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
最后它引发了这个错误。
每个人都面临这个问题? 谁能帮帮我?
导轨 3.2.8 设计 2.1.0 康康 1.6.9 红宝石 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
大家好,CanCan 在控制器收到 ajax 请求时运行良好。
评论.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/routes.rb
resources :comments do
member do
put 'approve'
put 'moderate'
put 'disapprove'
end
end
【问题讨论】:
-
请考虑将您的代码作为文本发布。如果有人想尝试一下,将其作为图片发布并不是很有帮助。
标签: ruby-on-rails ruby cancan