Devise Invitable controller 好像达不到?

Devise Invitable controller seems not to be reached?

我安装了 devise-invitable 并使用标准的 devise-invitable 控制器(我没有生成)它正常运行。但是,当我尝试为 devise-invitable 生成自定义控制器时,我遇到了一些问题。请在下面找到我采取的步骤。

我生成控制器的步骤

  1. 根据设计文档,我尝试通过失败的控制台生成邀请控制器:
rails generate devise:controllers users -c=invitations 

Running via Spring preloader in process 64830 
Could not find "invitations_controller.rb" in any of your source paths. Your current source paths are: 
/Users/name/code/name/app/lib/templates/devise/controllers 
/Users/name/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/devise-4.7.0/lib/generators/templates/controllers
  1. 当这不起作用时,我手动尝试实现:
    • 生成所有其他设备控制器的文件夹中的一个控制器
    • 正在将邀请控制器添加到 routes.rb

=> 这个好像也没用,因为我试过把控制器弄坏看看有没有达到,但是没有坏。

controllers/users/invitations_controller.rb

class Users::InvitationsController < Devise::InvitationsController
  def new
    @hotel = Hotel.find(params[:park_id])
    @user = User.new
    @user.hotel = @hotel
    text to cause an error message
  end
end

routes.rb

Rails.application.routes.draw do
  devise_for :users, controllers: {
    sessions: 'users/invitations'
  }

问题出在您的路由中,因为邀请不是会话。

如果您在路线中将会话更改为邀请,那么它将到达 users/invitations 控制器。

# routes.rb
Rails.application.routes.draw do
  devise_for :users, controllers: {
    invitations: 'users/invitations'
  }
end