You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Run rails v6.0.2.2
devise_invitable (2.0.2)
devise (4.7.1)
Ruby 2.7.1
Routes:
Rails.application.routes.draw do
mount Rswag::Ui::Engine => '/api-docs'
mount Rswag::Api::Engine => '/api-docs'
scope :api, defaults: { format: :json } do
scope :v1, defaults: { format: :json } do
devise_for :users, controllers: {
sessions: 'api/v1/sessions',
invitations: 'api/v1/users/invitations'
},
path_names: { sign_in: :login },
skip: [:passwords]
end
end
....
My controller to do overrides is /app/controller/api/v1/users/invitiations_controller.rb
# frozen_string_literal: true
module Api
module V1
class Users::InvitationsController < Devise::InvitationsController
before_action :configure_permitted_parameters
before_action :authenticate_user!
def create
User.invite!(invite_params, current_user)
render json: { success: ['User created.'] }, status: :created
end
def edit
sign_out send("current_#{resource_name}") if send("#{resource_name}_signed_in?")
set_minimum_password_length
resource.invitation_token = params[:invitation_token]
redirect_to "http://localhost:3000/users/invitation/accept?invitation_token=#{params[:invitation_token]}"
end
def update
super do |resource|
if resource.errors.empty?
render json: { status: "Invitation Accepted!" }, status: 200 and return
else
render json: resource.errors, status: 401 and return
end
end
end
private
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:accept_invitation, keys: [:first_name, :last_name, :role_id])
end
end
end
end
if I do a post request I get
oMethodError at /api/v1/users/invitation
=========================================
> undefined method `has_invitations_left?' for true:TrueClass
devise_invitable (2.0.2) app/controllers/devise/invitations_controller.rb, line 92
----------------------------------------------------------------------------------
ruby
87 def current_inviter
88 authenticate_inviter!
89 end
90
91 def has_invitations_left?
> 92 unless current_inviter.nil? || current_inviter.has_invitations_left?
93 self.resource = resource_class.new
94 set_flash_message :alert, :no_invitations_remaining if is_flashing_format?
95 respond_with_navigational(resource) { render :new }
96 end
97 end
Hi
Firstly sorry if this isnt the right place to bring this up, but I am stuff trying to use invitable in a Rails API app. I followed on from https://www.codementor.io/@gowiem/deviseinvitable-rails-api-9wzmbisus but keep getting an error that I can seem to find any help with.
Run rails v6.0.2.2
devise_invitable (2.0.2)
devise (4.7.1)
Ruby 2.7.1
Routes:
My controller to do overrides is
/app/controller/api/v1/users/invitiations_controller.rb
if I do a post request I get
I can provide full backtrace if needed.
The full request I am doing is:
The text was updated successfully, but these errors were encountered: