我正在做一個Ajax調用來保存數據。現在的問題是,用戶可能會在不知不覺中提交相同的數據兩次,它會變得重複。是否有放棄用戶提交或保存兩次相同數據的快捷方式或驗證?檢查數據是否已插入數據庫中的軌道
另請注意,用戶第二次提交表單時,created_at,updated_at不會相同。也唯一可以在我的表中唯一的是ID :)。
如果我有10個表單字段,直到和除非我的表單的所有10個字段都是相同的驗證器不會拒絕數據。
我正在做一個Ajax調用來保存數據。現在的問題是,用戶可能會在不知不覺中提交相同的數據兩次,它會變得重複。是否有放棄用戶提交或保存兩次相同數據的快捷方式或驗證?檢查數據是否已插入數據庫中的軌道
另請注意,用戶第二次提交表單時,created_at,updated_at不會相同。也唯一可以在我的表中唯一的是ID :)。
如果我有10個表單字段,直到和除非我的表單的所有10個字段都是相同的驗證器不會拒絕數據。
您可以使用像「標題」的屬性,並檢查它是否是該用戶的uniq:
class SomeModel < AR
validates_uniqueness_of :title, :scope => [:user_id]
end
唯一性不是解決方案,因爲可能會出現兩次插入相同值的情況,在我的情況下唯一可能唯一的就是ID :)。一種可能的解決方案可能會被捕獲,或者可能在保存之前找到該數據。我有點不願意使用「查找」,因爲查找所有的字段會很費時,並且可能會減慢我的應用程序,並且代碼也會變得很慢。 –
多數民衆贊成thatvalidates_uniqueness實際上是做(但如果你將其範圍的更多的屬性的可能性相同的將出現應該使它可以接受例如:一個用戶不能發佈兩次相同的標題,但相同的標題可以出現不同的用戶。 ... – charlysisto
我的意思是我有10個表單字段,直到和除非我的表單的所有10個字段都是相同的驗證器不會拒絕數據。 –
我不認爲有這個問題,在服務器端一個合理的解決方案。 嘗試使用javascript的簡單魔法disable_with。
這還不夠清楚,你應該展示一些代碼,並詳細解釋你想要做的事情。 – charlysisto