【发布时间】:2011-06-29 10:20:47
【问题描述】:
我有一个项目,其中有一个 CURRENCY 和 COUNTRY 表。有一个 PRICE 模型需要有效的货币和国家代码,所以我有以下验证:
validates :currency_code, :presence => true, :inclusion => { :in => Currency.all_codes }
validates :country_code, :presence => true, :inclusion => { :in => Country.all_codes }
all_codes 方法返回一个仅包含货币或国家代码的数组。这有效 只要没有代码添加到表中就可以了。
您将如何编写此代码以使 Currency.all_codes 的结果是 Proc 或在 lambda 内?我尝试了 Proc.new { Currency.all_codes } - 但随后得到一个错误,即对象不响应包含?
【问题讨论】:
-
all_codes使用的当前代码是什么? -
def self.all_codes all.collect(&:CURRENCY_CODE) end
标签: ruby-on-rails ruby validation activerecord