私はDeviseとDevise-invitableを使用しています。しかし、招待を受け入れようとすると、トークンが無効であると表示されます。新しいデバイスには、トークンを保存する方法に関する問題があります...これが問題を引き起こしていることがわかっています( https://github.com/scambra/devise_invitable/issues/402 )
ただし、まだ修正する方法がわかりません。作成者は @token を使用すると言っていますが、@token を取得する方法がわかりません。この変数はどこから来たのですか?これが私がこれまでに持っているものです:
class Users::InvitationsController < Devise::InvitationsController
private
def invite_resource
resource_class.invite!(email: params['user']['email'], company_id: current_user.company.id) do |u|
# skip sending emails on invite
u.invited_by_id = current_user.id
u.invited_by_type = 'User'
u.skip_invitation = true
u.invitation_sent_at = Time.now
end
end
def accept_resource
debugger
resource = resource_class.accept_invitation!(update_resource_params)
end
そして私が使用しているリンク:
= link_to 'Accept invitation', accept_invitation_url('user', :invitation_token => @token)
以前は@tokenの代わりにinvitation.invitation_tokenを使用していましたが、それはハッシュ化されたバージョンではないと思いますか? 上記の承認リンクに正しいバージョンを挿入するにはどうすればよいですか?