[英]Undefined method 'role?' for User
我有以下abilities
模型:
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # guest user, not logged in.
if user.role? == :admin
can :manage, :all
else
can :read, :all
end
if user.role == "default"
can :create, Homescreen
end
can :destroy, Homescreen do |homescreen|
homescreen.try(:user) == user
end
end
end
我有以下用戶模型:
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
before_create :setup_default_role_for_new_users
attr_accessible :email, :password, :password_confirmation, :remember_me
has_many :homescreens
ROLES =%w[admin default]
private
def setup_default_role_for_new_users
if self.role.blank?
self.role = "default"
end
end
end
當我在我的本地機器上運行它時,它工作正常。
但是,當我部署到heroku時,我收到以下錯誤:
GET URL.herokuapp.com dyno=web.1 queue=0 wait=0ms service=158ms status=500 bytes=643
app/models/ability.rb:7:in `initialize'
NoMethodError (undefined method `role?' for #<User:0x00000003b56050>):
cache: [GET /] miss
Started GET "/" for my-ipaddress at 2012-03-19 16:14:38 +0000
NoMethodError (undefined method `role?' for #<User:0x00000003df5d88>):
app/models/ability.rb:7:in `initialize'
cache: [GET /] miss
我究竟做錯了什么?
我使用以下命令重新啟動了heroku:
heroku restart && heroku ps:restart
它工作得很好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.