0

我正在使用 Rails,当我尝试使用 Devise 生成的一些帮助程序时出现错误。例如,我的 User.rb 中有这个方法。

ef password_required?
  super && provider.blank?
end

我试图允许用户在没有提供者的情况下注册,但这给了我错误,例如“未定义的局部变量或方法 `provider' for #”...

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

在遵循 railscast devise 或 omniauth+devise 教程并使其正常工作后,我修复了上述两个问题并删除了该方法。

于 2013-07-29T02:02:43.170 回答