0

Rails を使用していますが、Devise によって生成されたヘルパーを使用しようとするとエラーが発生します。たとえば、User.rb にこのメソッドがあります。

ef password_required?
  super && provider.blank?
end

ユーザーがプロバイダーなしでサインアップできるようにしようとしていますが、これにより、「未定義のローカル変数または # のメソッド「プロバイダー」」などのエラーが発生します...

class ExampleUserController < Devise::RegistrationsController
    def create
        @user = User.find_by_email(user_params[:email])
        if (@user.nil?)
                @user = User.new(user_params)
        else 
            @user.assign_attributes(user_params)
        end 
        @example_user = ExampleUser.new()
        if(@user.save)
            @example_user.id = @user.id
        end
    end
    private 
    def user_params
      params.require(:user).permit(:email, :password, :password_confirmation)
    end
    def example_user_params
      params.require(:example_user).permit(:first_name)
    end

end
4

1 に答える 1

0

いくつかのこと -

最初の行は「ef password_required?」です。「d」が足りないだけかもしれません... def password_required?

モデルに次のものはありますか?

attr_accessible :email、:password、:password_confirmation

上記の 2 つの問題を修正し、railscast devise または omniauth+devise チュートリアルに従ってそのメソッドを削除し、機能するようにしました。

于 2013-07-29T02:02:43.170 に答える