You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Rails模型中自定义ETH地址验证始终不通过?

问题分析与解决

你在模型的自定义验证方法中存在参数传递错误,导致验证始终失败:

在validate_address_type方法里,你调用AdequateCryptoAddress.valid?时,第一个参数传的是字段名符号:ETH_address,而不是当前用户实例的实际地址值。验证方法需要的是要校验的地址字符串,而非字段名称的符号。

修正后的代码

class User < ApplicationRecord
    attribute :ETH_address, :string

    validates :name, presence: true, length: {minimum: 3, maximum: 30}
    validates :ETH_address, presence: true, length: { minimum: 42, maximum: 42}
    validate  :validate_address_type
  
    def validate_address_type
      errors.add(:ETH_address, 'invalid address') unless 
        AdequateCryptoAddress.valid?(self.ETH_address, 'ETH')
    end
end

补充检查项

  • 确认AdequateCryptoAddress.valid?的参数顺序符合库的要求:你的控制台调用返回true,说明参数顺序(地址在前、币种在后)是正确的,只需确保模型中传入的是实例的地址属性值即可。

内容的提问来源于stack exchange,提问作者Chris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 09:06:04