Я хочу внедрить Devise Invitable в мое приложение, однако, оно работает не так, как ожидалось.Прямо сейчас электронное письмо отправляется правильно, но когда пользователь нажимает на ссылку accept invitation
, он не отправляется на страницу, где он может установить свой пароль, он отправляется на корневой маршрут веб-сайта.Что еще более странно, что когда я проверяю ссылку accept invite
, гиперссылка устанавливается на http://localhost:3000/users/invitation/accept?invitation_token=aQ9_9eubcMHv-hXuUM3T"
Это то, что должно быть установлено на!Но это не отправляет меня туда.Кажется, что как только пользователи приходят на страницу, Devise Invitable автоматически перенаправляет пользователя на домашнюю страницу, а не отображает форму, которая позволяет пользователю установить свой пароль, и я не знаю, почему
здесьэто мой контроллер приглашений
class Users::InvitationsController < Devise::InvitationsController
before_action :configure_permitted_parameters
protected
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:accept_invitation, keys: [:first_name, :last_name])
end
end
и вот мои маршруты
Rails.application.routes.draw do
devise_for :users, controllers: { invitations: 'users/invitations' }
root 'pages#home'
get '/dashboard', to: 'dashboard#index'
namespace :dashboard do
resources :projects do
post :toggle_status
end
resources :users, except: [:edit, :update]
end
end
Вот что сообщают мои журналы, как только я нажимаю на ссылку принять:
Started GET "/users/invitation/accept?invitation_token=nXxxSxP8vC3yUogm9yzx" for 127.0.0.1 at 2018-08-26 21:33:37 -0600
Processing by Users::InvitationsController#edit as HTML
Parameters: {"invitation_token"=>"nXxxSxP8vC3yUogm9yzx"}
User Load (0.8ms) SELECT "users".* FROM "users" WHERE "users"."invitation_token" = $1 ORDER BY "users"."id" ASC LIMIT $2 [["invitation_token", "a807392954389f3dd2054bfe03567b5419d6da7212f1c490ee2b46a9641037a6"], ["LIMIT", 1]]
↳ /Users/angelgarcia/.rvm/gems/ruby-2.5.1/gems/activerecord-5.2.1/lib/active_record/log_subscriber.rb:98
User Load (0.8ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT $2 [["id", 20], ["LIMIT", 1]]
↳ /Users/angelgarcia/.rvm/gems/ruby-2.5.1/gems/activerecord-5.2.1/lib/active_record/log_subscriber.rb:98
Redirected to http://localhost:3000/
Filter chain halted as :require_no_authentication rendered or redirected
Completed 302 Found in 9ms (ActiveRecord: 1.6ms)
Started GET "/" for 127.0.0.1 at 2018-08-26 21:33:37 -0600
Processing by PagesController#home as HTML
Rendering pages/home.html.erb within layouts/application
Rendered pages/home.html.erb within layouts/application (0.8ms)
Completed 200 OK in 83ms (Views: 76.7ms | ActiveRecord: 0.0ms)
Вот мои маршруты для Devise
cancel_user_registration GET /users/cancel(.:format) devise_invitable/registrations#cancel
new_user_registration GET /users/sign_up(.:format) devise_invitable/registrations#new
edit_user_registration GET /users/edit(.:format) devise_invitable/registrations#edit
user_registration PATCH /users(.:format) devise_invitable/registrations#update
PUT /users(.:format) devise_invitable/registrations#update
DELETE /users(.:format) devise_invitable/registrations#destroy
POST /users(.:format) devise_invitable/registrations#create
accept_user_invitation GET /users/invitation/accept(.:format) users/invitations#edit
remove_user_invitation GET /users/invitation/remove(.:format) users/invitations#destroy
new_user_invitation GET /users/invitation/new(.:format) users/invitations#new
user_invitation PATCH /users/invitation(.:format) users/invitations#update
PUT /users/invitation(.:format) users/invitations#update
POST /users/invitation(.:format) users/invitations#create