2012-06-21 53 views
1

我有一個我想要驗證的表單。驗證是基於其他幾個模型對象中的屬性,但該表單本身並不對應於ActiveRecord模型。Rails中的動態表單驗證

是否有可能使用ActiveModel來實現這一點?

class Person < ActiveModel 
    has_one :shoe 
    validates :name, :length => { :maximum => self.shoe.size } 
end 

我基本上想驗證基於另一個模型對象的屬性的窗體。無論如何,這可能嗎?

+0

不確定你的問題與ActiveModel/ActiveRecord。你想要的是能夠在驗證中引用記錄,對嗎? –

+0

我沒有任何「問題」。我只想在非ActiveRecord模型中進行驗證,該模型基於另一個類的屬性。 – willcodejavaforfood

+0

但您向我們展示了一個ActiveRecord模型。加上驗證有自我提及的人類,但可能意味着引用已驗證的記錄。請澄清 –

回答

2
class Person 
    include ActiveModel::Validations 

    # has_one :shoe # This won't work 

    validates :validates_name_length 

    private 
    def validates_name_length 
    errors.add :name, 'too long' if name && name.length > shoe.size 
    end 
end 
+0

我會試試:) – willcodejavaforfood