2017-05-27 60 views
0

我在我的模型上使用了acts_as_list。我在該模型上有一個位置列,如果位置超過我的上限位置,我不希望模型對象被保存到數據庫。 (我嘗試使用rails驗證位置,但顯然似乎rails驗證首先運行然後acts_as_list更新(增量)位置並將其保存在db中工作。acts_as_list上限位置

是類似這樣的事情acts_as_list scope: :widgets, {0 < :position <= 2} 我瀏覽了他們的文檔,但是找不到任何東西。

我該如何在Rails中做到這一點

任何幫助將不勝感激。如果您需要,請隨時向我詢問更多信息。

回答

0

我認爲你需要做這樣的事情

acts_as_list scope: :widgets, if: 'position <= 2' 
+0

沒有工作 –

0

acts_as_list本身並不支持這一點。您可以嘗試添加一個基於不超過x匹配範圍記錄的驗證嗎?

validates :maximum_records 

private 

def maximum_records 
    if where([[scope conditions]]).count > something 
    errors.add :base, 'too many records' 
    end 
end