2013-10-28 30 views
0

下午Stop_create除非。首先

我有以下代碼停止多個片段的製作如果不認可,但自從我創建的第一個片段沒有什麼參考等我怎麼會寫這將是一些幫助很有用。

validate :stop_create, :on => :create 

    def stop_create 
     errors.add(:base, "could not add due to last snippet not approved") if self.last.approved == false 
end 
+0

什麼實際問題,問題是,我不太清楚... –

回答

1

檢查在試圖獲取其狀態之前是否確實存在最後一個片段。

def stop_create 
    errors.add(:base, "could not add due to last snippet not approved") if Snippet.last && Snippet.last.approved == false 
end 

OR

def stop_create 
    errors.add(:base, "could not add due to last snippet not approved") if Snippet.last.try(:approved) == false 
end 
+0

這個工作,但我不得不改變self.last.try到Snippet.last.try?但我不明白爲什麼? –

+0

.last方法應該在類上調用,而不是在實例對象上調用,並且在驗證回調中self是正在驗證的對象(實例) – Tumas