我正在使用设计& CanCan为我的应用程序。当用户登录,他们被带到他们的账户页面 - 我已经设置了一个自定义的重定向这样的:CanCan停止设计重定向
def after_sign_in_path_for(resource)
url_for :controller => '/users', :id => current_user.id, :action => 'myaccount'
end
然而,当我尝试了当用户注册做同样的 - 即使用after_sign_up_path_for(资源),那么我给出的这个错误:
NoMethodError in UsersController#show
undefined method `user' for #<User:0x25d15e8>
它指的是我设立了惨惨的ability.rb文件,该文件是这样的:
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # guest user
can :manage, :all do |all|
all.try(:user) == user
end
线跟它是概率lem是all.try(:user)==用户。我不明白为什么这会导致问题?这似乎是,无论我为重定向提供什么,它总是会让我去例如{app}/users/22并发出此错误。
你可能想把它分成模型而不是尝试。如果您需要更新权限,稍后将更容易阅读和操作。 – jvnill 2013-03-01 16:06:00