2011-03-18 57 views
1

我有2个属性验证长度对他人财产

  • URL_NAME

我想,以确保在URL_NAME的字符数少于模型或等于名称中的字符数。我曾尝试做类似以下的事情,但它似乎并不奏效。有没有人有什么建议?

class Country < ActiveRecord::Base 
    has_many :product 

    validates_presence_of :name, :url_name 
    validates_length_of :url_name, :maximum => :name.length 

end 

我是新来的Ruby和Rails所以请原谅我对我缺乏一些在:)

回答

5

默认验证方法无法做到这一点的语言的基本概念的理解(他们是相当基本),但您可以创建一个自定义验证方法,例如:

validate :url_length 

def url_length 
    errors.add(:url_name, "error") unless url_name.length <= name.length 
end 
+0

很酷,这非常有效。我只需要将=>更改为<=这正是我认为你的意思? – Alex 2011-03-18 16:16:13

+0

是的,你是对的! – Augusto 2011-03-18 16:20:11