Я установил devise-invitable и с помощью стандартного devise-invitable контроллера (который я не генерировал) он функционирует должным образом. Однако, когда я попытался сгенерировать пользовательский контроллер для devise-invitable, я столкнулся с некоторыми проблемами. Пожалуйста, найдите ниже шаги, которые я предпринял.
Шаги, которые я предпринял для генерации контроллера
- Следуя документации устройства, я попытался сгенерировать контроллер приглашений через консоль, которая завершилась неудачно:
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
Когда это не сработало, я вручную попытался внедрить:
- контроллер в папке, где были сгенерированы все остальные контроллеры devise
- Добавление контроллера приглашений в rout.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
rout.rb
Rails.application.routes.draw do
devise_for :users, controllers: {
sessions: 'users/invitations'
}