如何检查ActiveRecord验证中的值是否包含在哈希值中?

时间:2012-11-10 20:29:34

标签: ruby-on-rails ruby ruby-on-rails-3

我有Project模型,我需要测试billing_address_type是否有效。

class Project < ActiveRecord::Base

  validates :billing_address_type, :inclusion  => { :in => %w(h o) }

  def billing_address_types
    options = {"Home" => "h", "Organisation" => "o"}       
    if person.present?
      options.delete("Home") if person.address.blank?
      options.delete("Organisation") if person.organisation.blank?
    end
    options
  end

validates行是错误的。我需要检查包含方法billing_address_types返回的哈希值。

如何仅检查哈希值?

感谢您的帮助......

1 个答案:

答案 0 :(得分:2)

您可以将lambda或新Proc传递给将动态评估的:in选项,并对{{1}返回的哈希值使用values方法仅获取哈希值:

billing_address_types

有关详细信息,请参阅documentation