我是新來的鐵軌,並沒有能夠找到這個東西。Rails - 如何限制用戶輸入多個記錄每個協會
在我的應用程序中,我有產品,評論,&用戶。
評論belongs_to用戶&產品,同時用戶和產品「has_many」評論。
但是,我想限制用戶輸入每個產品的多個評論(每個產品都是唯一的)。因此,如果用戶爲產品創建評論並嘗試爲同一產品撰寫另一篇評論,他們會被告知不允許他們編輯現有評論。
我的問題是:我應該在控制器級別執行此操作,還是有可能通過驗證(這看起來像是更簡單的解決方案)執行此操作?只是不知道如何處理它。
需要說明的是,上述驗證在「評論」模型中是否正確?添加唯一索引有什麼好處? – Zephyr4434
@ Zephyr4434是的。我只是更新了答案,以澄清包含我的示例代碼的類的名稱。 –
@ Zephyr4434獨特的索引將派上用場,如果你有第二個進程寫入這張表。可能的方案是後臺作業隊列或多個應用程序服務器。當我有兩個工作處理隊列同時寫同一條記錄時,我一直在被咬傷。由於缺乏唯一性索引,我最終得到了兩條記錄,即使每個單獨的Rails引擎儘管它正在寫入同類型的唯一記錄。 –