【问题标题】:Validation of specific attribute rails特定属性栏的验证
【发布时间】:2012-12-03 12:25:57
【问题描述】:

我在验证一个表单时遇到问题,我有一个具有多个属性的产品模型,但我想创建一种方法来验证以下几乎一个属性是否存在:

产品.rb

   attr_accessible :ship_int, ship_df, :tipo_envio

  #I'm trying to validate :ship_df like this:

validates :ship_df, :presence => { :message => "*seleciona al menos una opcion de envio"}, 
:allow_blank => true, :on => :create, :if => :almost_one_option_df?

 def almost_one_option_df?
    ship_df != nil || tipo_envio != nil || ship_int != nil
 end

问题是,我如何验证这三个属性中的几乎一个是否存在?如果一个存在,则可以创建产品。

谢谢!

【问题讨论】:

    标签: ruby-on-rails forms validation model


    【解决方案1】:

    我想您想验证至少设置了ship_dftipo_envioship_int 之一?如果其中一个、两个或三个有值,则它是有效的,但如果没有一个有值,则不是?

    如果是这样,我会检查 blank 而不是 nil

    validate :any_present?
    
    def any_present?
      if %w(ship_df tipo_envio ship_int).all?{|attr| self[attr].blank?}
        errors.add :base, "*seleciona al menos una opcion de envio"
      end
    end
    

    【讨论】:

    • 我试过你的方法,但是我有一个错误日志,未定义的方法`add_to_base',你怎么看?
    猜你喜欢
    • 2016-11-26
    • 2018-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多