2011-03-18 58 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