如何解决DeviseInvitable的“邀请令牌不能为空”

时间:2012-09-20 22:52:33

标签: ruby-on-rails ruby-on-rails-3 devise

我在rails应用程序中使用了strong_parameters和devise_invitable。如果我离开它,因为它是“禁止属性”运行时错误是我得到的。所以我做了以下事情:

  1. 使用rails g controller users/invitations
  2. 创建了一个新控制器
  3. :invitations => "users/invitations"添加到devise_for
  4. 填充的用户/ invitations.rb如下:

    class Users::InvitationsController < Devise::InvitationsController
       def update
        self.resource = resource_class.accept_invitation!(allowed_params)
    
        if resource.errors.empty?
          set_flash_message :notice, :updated
          sign_in(resource_name, resource)
          respond_with resource, :location => after_accept_path_for(resource)
        else
          respond_with_navigational(resource){ render :edit }
        end
    end
    
     private
    
      def allowed_params
         params.permit(:utf8,:authenticity_token,:invitation_token, :_method,
         {user: [:invitation_token,:password,:password_confirmation]}, :commit, 
         :action,:controller)
      end
    end
    
  5. 然而,当我这样做时,我收到错误“邀请令牌不能为空”。我已经使用puts检查了allowed_pa​​rams的值,看起来它就在那里。然而,我仍然得到错误。

1 个答案:

答案 0 :(得分:1)

我发现了我的问题并在wiki上解答了。