Я использую Devise & CanCan для моего приложения. Когда пользователь входит в, они принимаются на свою страницу счетов - я настроил пользовательские перенаправления для этого:CanCan stoping Devise redirect
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 is all.try (: user) == пользователь. Я не понимаю, почему это вызывает проблему? Кажется, что независимо от того, что я поставил для перенаправления, он всегда будет принимать меня, например. {app}/users/22 и укажите эту ошибку.
вы, вероятно, захотите разбить это на модели вместо того, чтобы пытаться это сделать. это будет легче читать и манипулировать позже, если вам нужно обновить разрешения. – jvnill