【发布时间】:2020-08-22 04:43:21
【问题描述】:
我在我的 rails 5 应用程序中使用 devise_invitable gem。每次提交“发送邀请”按钮后,我都会收到错误 RuntimeError in Devise::InvitationsController#create, Could not find a valid mapping for nil
下面是application_controller.rb文件的代码:
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
before_action :configure_permitted_parameters, if: :devise_controller?
def authenticate_inviter!
unless current_user.role=='Manager'
if current_user.role == "Developer"
redirect_to root_path, :alert => "Access Denied! Only Manager Can Add New Developer"
end
super
end
end
protected
def configure_permitted_parameters
added_attrs = [ :email, :password, :password_confirmation ]
devise_parameter_sanitizer.permit :sign_up, keys: added_attrs
devise_parameter_sanitizer.permit :account_update, keys: added_attrs
devise_parameter_sanitizer.permit :accept_invitation, keys: [:email]
end
end
这是User.rb的代码:
class User < ApplicationRecord
include DeviseInvitable::Inviter
devise :invitable, :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable
end
这里是 Route.rb
Rails.application.routes.draw do
devise_for :users
root 'dashboard#index'
end
这是所有路线:
前缀动词 URI 模式控制器#Action new_user_session GET /users/sign_in(.:format) 设计/会话#new user_session POST /users/sign_in(.:format) 设计/会话#create destroy_user_session 删除 /users/sign_out(.:format) 设计/会话#destroy new_user_password GET /users/password/new(.:format) 设计/密码#new edit_user_password GET /users/password/edit(.:format) 设计/密码#edit user_password PATCH /users/password(.:format) 设计/密码#update PUT /users/password(.:format) 设计/密码#update POST /users/password(.:format) 设计/密码#create 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 删除 /users(.:format) devise_invitable/registrations#destroy POST /users(.:format) devise_invitable/registrations#create accept_user_invitation GET /users/invitation/accept(.:format) 设计/邀请#edit remove_user_invitation GET /users/invitation/remove(.:format) 设计/邀请#destroy new_user_invitation GET /users/invitation/new(.:format) 设计/邀请#new user_invitation PATCH /users/invitation(.:format) 设计/邀请#update PUT /users/invitation(.:format) 设计/邀请#update POST /users/invitation(.:format) 设计/邀请#create 根 GET / 仪表板#index rails_service_blob GET /rails/active_storage/blobs/:signed_id/*filename(.:format) active_storage/blobs#show rails_blob_representation GET /rails/active_storage/representations/:signed_blob_id/:variation_key/*filename(.:format) active_storage/representations#show rails_disk_service GET /rails/active_storage/disk/:encoded_key/*filename(.:format) active_storage/disk#show update_rails_disk_service PUT /rails/active_storage/disk/:encoded_token(.:format) active_storage/disk#update rails_direct_uploads POST /rails/active_storage/direct_uploads(.:format) active_storage/direct_uploads#create- 我没有创建任何自定义邀请控制器。
-
我只是运行以下命令来设置和配置 devise_invitable
gem 'devise_invitable'
捆绑安装
rails 生成 devise_invitable:install
rails 生成 devise_invitable 用户
rails db:迁移
rails 生成 devise_invitable:views
重启 Rails 服务器
这是完整错误的图片: see the picture of the complete error
我怎样才能摆脱这个问题。请帮帮我
【问题讨论】:
-
您好,欢迎来到 stackoverflow。请编辑您的问题并以文本形式包含相关代码、错误和日志。屏幕截图不可读,无法搜索或复制,您应该尽可能方便人们帮助您。 stackoverflow.com/help/how-to-ask
标签: ruby-on-rails ruby devise devise-invitable