0

Railsアプリケーションでstrong_parametersとdevise_invitableを使用しています。「禁止属性」のままにしておくと、実行時エラーが発生します。だから私は次のことをしました:

  1. を使用して新しいコントローラを作成しましたrails g controller users/invitations
  2. :invitations => "users/invitations"devise_forに追加されました
  3. 次のようなユーザー/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
    

ただし、これを行うと、「招待トークンを空白にすることはできません」というエラーが表示されます。を使用してallowed_pa​​ramsの値を確認しましたが、putsそこにあるようです。それでも、エラーが発生します。

4

1 に答える 1

1

私は自分の問題を見つけ、wikiで答えました。

于 2012-09-27T22:53:24.863 に答える