Ich habe ein Benutzermodell für die Autorisierung mit Device gem. Ich möchte after_sign_in_path Methode hinzufügen:undefined Methode `user_url 'für Devise SessionsController: create
# application_controller.rb
protected
# redirecting to appropriate url based on role
def after_sign_in_path_for(resource)
if current_user.has_role?(:admin)
dashboard_path
elsif current_user.has_role?(:student)
root_path
end
end
undefined method `user_url' for #<Devise::SessionsController:0x007fb89b5b00a8> Did you mean? course_url
authenticate :user do
resources :feeds, only: [:index]
resources :courses, only: [:index, :show]
# etc...
end
Auch hier ist der Code es zeigt mir:
if options.empty?
recipient.send(method, *args)
else
recipient.send(method, *args, options)
end
und erste Zeile von Log:
actionpack (4.2.4) lib/action_dispatch/routing/polymorphic_routes.rb:220:in `polymorphic_method'
Jedes Mal, wenn ich lobe after_sign_in_path_for ich in der Lage bin zu unterzeichnen. Wenn ich Inhalte after_sign_in_path_for kommentieren, aber after_sign_in_path_for Methode, bekomme ich diesen Fehler auch leer lassen.
EDIT: Ich habe getestet, dass ich nicht auch angemeldet bin, nicht nur nicht umgeleitet. Ich denke, Fehler passiert direkt im Call After_sign_in_path_for, nicht in der redirect_to oder was auch immer. Wahrscheinlich hat es etwas mit Ressource zu tun.
EDIT2: hier sind meine Harke Routen:
new_user_session GET /users/sign_in(.:format) devise/sessions#new
user_session POST /users/sign_in(.:format) devise/sessions#create
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
user_password POST /users/password(.:format) devise/passwords#create
new_user_password GET /users/password/new(.:format) devise/passwords#new
edit_user_password GET /users/password/edit(.:format) devise/passwords#edit
PATCH /users/password(.:format) devise/passwords#update
PUT /users/password(.:format) devise/passwords#update
cancel_user_registration GET /users/cancel(.:format) registrations#cancel
user_registration POST /users(.:format) registrations#create
new_user_registration GET /users/sign_up(.:format) registrations#new
edit_user_registration GET /users/edit(.:format) registrations#edit
PATCH /users(.:format) registrations#update
PUT /users(.:format) registrations#update
DELETE /users(.:format) registrations#destroy
user_confirmation POST /users/confirmation(.:format) devise/confirmations#create
new_user_confirmation GET /users/confirmation/new(.:format) devise/confirmations#new
GET /users/confirmation(.:format) devise/confirmations#show
admin_root GET / rails_admin/main#dashboard
student_root GET / feeds#index
feeds GET /feeds(.:format) feeds#index
courses GET /courses(.:format) courses#index
course GET /courses/:id(.:format) courses#show
schools GET /schools(.:format) schools#index
school GET /schools/:id(.:format) schools#show
universities GET /universities(.:format) universities#index
university GET /universities/:id(.:format) universities#show
rails_admin /admin RailsAdmin::Engine
POST /graphql(.:format) graphql#create
landing_confirmation GET /landing/confirmation(.:format) landing#confirmation
landing_access_denied GET /landing/access_denied(.:format) landing#access_denied
root GET / landing#index
EDIT3: hier ist mein GitHub Repo:
https://github.com/yerassyl/nurate
Können Sie current_user in after_sign_in bekommen? –
@ChakreshwarSharma, auch wenn ich den Inhalt von after_sign_in_path_for kommentiere, bekomme ich diesen Fehler. – yerassyl
entfernen Sie den Inhalt der Methode & write logger.info ("current_user =" + current_user.to_json) super, was ist die Ausgabe, die Sie nach diesem erhalten –