Ruby on rails NoMethodError:未定义的方法`加密的\密码设计gem 这是我的用户模型: 类用户帐户 设计:数据库可验证,可注册, :可恢复,:可记忆,:可跟踪,:可验证 可访问属性:电子邮件、密码、密码确认、记住我 设计:数据库可验证, :ga_otp_可认证, :yk_otp_可认证, :可注册, :可确认, :可回收, :可跟踪, :可验证, :可锁定, :超时 #设置模型的可访问(或受保护)属性 属性可访问:密码、密码确认、记住我、时区、要求otp、要求otp、要求yk otp、全名、地址 属性存取器:验证码, :跳过验证码, :新密码, :新密码\u确认, :当前密码 在\u验证之前:生成\u名称, :on=>:创建 有很多:贸易订单, :dependent=>:destroy 有很多:购买交易, :class_name=>“交易”, :外键=>“买家id” 有很多:销售贸易, :class_name=>“交易”, :外键=>“卖方id” 有很多:发票, :dependent=>:destroy 有很多:Yubikey, :dependent=>:destroy 有很多:银行账户, :dependent=>:destroy 有很多票, :dependent=>:destroy #有很多票, #:dependent=>:destroy 验证:电子邮件, :唯一性=>true, :presence=>true 验证码:验证码 如果captcha.nil?还有新唱片? 除非跳过验证码 错误[:验证码]6) 结束 @QR码 结束 def确认! 超级的 用户邮箱。注册确认(自我)。发送 结束 受保护的 定义self.find_用于_数据库_身份验证(典狱长条件) 条件=典狱长_conditions.dup 名称=条件。删除(:名称) where(条件)。where([“name=:value或email=:value”,{:value=>name}])。首先 结束 def生成_名称 self.name=“BF-U{”%06d“%(兰德*10**6).to_i}” 结束 结束
这是我的帐户模型:Ruby on rails NoMethodError:未定义的方法`加密的\密码设计gem 这是我的用户模型: 类用户帐户 设计:数据库可验证,可注册, :可恢复,:可记忆,:可跟踪,:可验证 可访问属性:电子邮件、密码、密码确认、记住我 设计:数据库可验证, :ga_otp_可认证, :yk_otp_可认证, :可注册, :可确认, :可回收, :可跟踪, :可验证, :可锁定, :超时 #设置模型的可访问(或受保护)属性 属性可访问:密码、密码确认、记住我、时区、要求otp、要求otp、要求yk otp、全名、地址 属性存取器:验证码, :跳过验证码, :新密码, :新密码\u确认, :当前密码 在\u验证之前:生成\u名称, :on=>:创建 有很多:贸易订单, :dependent=>:destroy 有很多:购买交易, :class_name=>“交易”, :外键=>“买家id” 有很多:销售贸易, :class_name=>“交易”, :外键=>“卖方id” 有很多:发票, :dependent=>:destroy 有很多:Yubikey, :dependent=>:destroy 有很多:银行账户, :dependent=>:destroy 有很多票, :dependent=>:destroy #有很多票, #:dependent=>:destroy 验证:电子邮件, :唯一性=>true, :presence=>true 验证码:验证码 如果captcha.nil?还有新唱片? 除非跳过验证码 错误[:验证码]6) 结束 @QR码 结束 def确认! 超级的 用户邮箱。注册确认(自我)。发送 结束 受保护的 定义self.find_用于_数据库_身份验证(典狱长条件) 条件=典狱长_conditions.dup 名称=条件。删除(:名称) where(条件)。where([“name=:value或email=:value”,{:value=>name}])。首先 结束 def生成_名称 self.name=“BF-U{”%06d“%(兰德*10**6).to_i}” 结束 结束,ruby-on-rails,mysql2,Ruby On Rails,Mysql2,这是我的帐户模型: this is my user model: class User < Account devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable attr_accessible :email, :password, :password_confirmation, :
this is my user model:
class User < Account
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
attr_accessible :email, :password, :password_confirmation, :remember_me
devise :database_authenticatable,
:ga_otp_authenticatable,
:yk_otp_authenticatable,
:registerable,
:confirmable,
:recoverable,
:trackable,
:validatable,
:lockable,
:timeoutable
# Setup accessible (or protected) attributes for your model
attr_accessible :password, :password_confirmation, :remember_me, :time_zone, :require_ga_otp, :require_yk_otp, :full_name, :address
attr_accessor :captcha,
:skip_captcha,
:new_password,
:new_password_confirmation,
:current_password
before_validation :generate_name,
:on => :create
has_many :trade_orders,
:dependent => :destroy
has_many :purchase_trades,
:class_name => "Trade",
:foreign_key => "buyer_id"
has_many :sale_trades,
:class_name => "Trade",
:foreign_key => "seller_id"
has_many :invoices,
:dependent => :destroy
has_many :yubikeys,
:dependent => :destroy
has_many :bank_accounts,
:dependent => :destroy
has_many :tickets,
:dependent => :destroy
#has_many :tickets,
# :dependent => :destroy
validates :email,
:uniqueness => true,
:presence => true
validate :captcha do
if captcha.nil? and new_record?
unless skip_captcha
errors[:captcha] << I18n.t("errors.answer_incorrect")
end
end
end
def captcha_checked!
self.captcha = true
end
def bitcoin_address
super or (generate_new_address && super)
end
def qr_code
if @qrcode.nil?
@qrcode = RQRCode::QRCode.new(bitcoin_address, :size => 6)
end
@qrcode
end
def confirm!
super
UserMailer.registration_confirmation(self).deliver
end
protected
def self.find_for_database_authentication(warden_conditions)
conditions = warden_conditions.dup
name = conditions.delete(:name)
where(conditions).where(["name = :value OR email = :value", { :value => name }]).first
end
def generate_name
self.name = "BF-U#{"%06d" % (rand * 10 ** 6).to_i}"
end
end
类帐户:destroy
属于:家长,
:class_name=>“帐户”
验证:名称,
:presence=>true,
:唯一性=>true
#BigDecimal在这里返回
def余额(货币,选项={})
账户操作。使用币种(货币)。使用确认(选项[:未确认])。仅使用已处理的活动存款。映射(&:金额)。总和。四舍五入(5)。abs
结束
#如果在最后一小时内尚未刷新,则生成新的接收地址
def生成新地址
除非上次地址刷新和上次地址刷新>DateTime.now.advance(:hours=>-1)
self.last\u address\u refresh=DateTime.now
self.bitcoin_address=比特币::Client.instance.get_new_address(id.to_s)
拯救
结束
结束
def最大提取金额(货币)
转账金额(自身余额(货币)、币种)
结束
定义自身存储账户(货币)
account_name=“存储”{currency.to_.downcase}”
账户=按账户名称查找(账户名称)
如果帐户
账户
其他的
帐户。创建!做|
a、 名称=帐户名称
结束
结束
结束
结束
我的问题是我试图输入密码,但它不接受密码字段。密码不能为空是一个错误
我已尝试手动创建用户。这里是给错误未定义方法加密密码
如何解决这个问题?试试这个。。。。。
您的型号上有加密密码列吗
对
仅仅因为它是attr_可访问的,并不意味着该属性存在,只意味着您可以访问它(如果它确实存在)。进入rails控制台并运行:
attr_accessible :email, :password, :password_confirmation, :remember_me, :encrypted_password
如果返回true,则模型中有该列,否则需要确保运行正确的迁移
User.new.respond_to?(:encrypted_password=)
这将有助于您[检查此处][1][1]:用户。新建。响应?(:加密的密码=)=>false我已经运行了这个我得到了false。运行rake db:migrate:reset重新启动服务器,然后检查。尝试“bundle exec rake db:migrate:reset”请让我知道它在控制台的输出中提供了什么,然后启动服务器并检查.User.new.response_to?(:encrypted_password=)=>false,但它不接受密码
User.new.respond_to?(:encrypted_password=)
User.new.respond_to?(:encrypted_password=) => false
I run rake db:migrate:reset and it work!!!