2013-10-26 30 views
1

我們有自定義模型。這是工作不數據庫,包括來自活動記錄的一些混入:Rails在自定義模型上手動運行驗證

class Node 
    include ActiveModel::Validations 
    include ActiveModel::Conversion 
    extend ActiveModel::Naming 

    attr_accessor :title, :content 

    validates_presence_of :title, :content 

    def initialize(attributes = {}) 
    attributes.each do |name, value| 
     send("#{name}=", value) 
    end 
    end 

    def persisted? 
    false 
    end 

    def save 
    # we want to run validations here 
    end 
end 

通過谷歌搜索得到,有可能使用@object.validate,但抱怨沒有這樣的方法。

請幫忙。

+0

'valid?'方法應該可用...是否可以使用它? –

+0

不知何故,它不工作。非現場領域仍在保存中。 – Waterlink

+0

這聽起來像是另一個問題..如果你運行'@object = Node.new',然後'@ object.valid?'在一個rails控制檯中,它會給你一個錯誤? –

回答

2

你是對的,.validate似乎是未定義的。

@object.valid?應該做你想要的工作。

請記住,這將返回一個布爾值,您可以使用它來根據您的要求控制條件行爲。

+0

謝謝你指點我再次檢查當我使用''''''''''時發生了什麼。 – Waterlink