2011-09-24 28 views
0

在我的模型中,我指定了before_save方法來運行,並根據某些數據檢查新記錄。如果新記錄不是我想要的 - 我怎樣才能阻止它被保存?銷燬記錄,然後將其保存到rails 3中

這裏基本上是我想要做的(和失敗):

before_save :itemCheck 

    def itemCheck 
    if self.item_type_id == 1 
     if self.num > 6 
      self.destroy 
     end 
    end 
    end 

注:我的代碼是比這更復雜 - 只是做一個簡單的例子。

回答

4

從您的before_save返回false並且記錄不會被保存。

作爲旁註:不要使用駝峯功能,但使用:item_check

+0

我很好奇 - 爲什麼我不應該使用駝峯功能? – Elliot

+7

@Elliot Ruby約定是爲類和模塊名稱使用'Upper :: CamelCase',爲變量和方法名稱使用'snake_case',爲常量使用UPPER_CASE – axelarge