簡體   English   中英

Rails對關聯的自定義驗證

[英]Rails Custom Validations on Associations

我有一個用戶。 一個用戶可以有很多表。 實際只有5。

在我的桌子模型中

validate :max_tables

def max_tables
 if user.tables.count > 5
  errors[:base] << "You already have 5 tables."
 end
end

這一切都很好,如果我嘗試創建表並且我的用戶已經有5個表,則會得到一個頁面,其中顯示

TablesController#create中的ActiveRecord :: RecordInvalid

驗證失敗:您​​已經有5個表格。

但是,如果沒有滿足其他驗證條件,我不會像錯誤那樣很好地顯示錯誤,因此無法重定向回到新的表格頁面。 由於某種原因,我陷入了這個硬錯誤頁面。

有任何想法嗎?

編輯:已解決

我在after_create回調中生成了一個簡短的URL,在那兒我調用了save!

一旦我解決了,一切都很好。 所以,謝謝@ house9!

使用errors.add_to_base "You already have 5 tables." -在我最古老,最大的應用程序中,我使用errors.add_to_basereturn false errors.add_to_base可能不需要返回,但我尚未對其進行測試。

編輯:解決了我在after_create回調中生成一個簡短的url,並且在那里我調用了save!

一旦我解決了,一切都很好。 所以,謝謝@ house9!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM