我正在使用設計& 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