私はユーザーがいます。ユーザーは多数のテーブルを持つことができます。実際、唯一の5Rails関連のカスタム検証
私のテーブルモデルで、私はこれは、すべての良い作品と私はテーブルを作成しようと、私のユーザーはすでに5を持っている場合、私は
を言うページを得るvalidate :max_tables
def max_tables
if user.tables.count > 5
errors[:base] << "You already have 5 tables."
end
end
を持っています
TablesController#でのActiveRecord :: RecordInvalid
検証に失敗しました:すでに5つのテーブルがあります。
しかし、私は他のバリデーションが満たされていないと、うまく表示されるエラーで新しいテーブルページにリダイレクトされません。何らかの理由で私はこのハードエラーページに固執しています。
アイデア?
編集:私はafter_createコールバックで短いURLを生成していました、そして私はすべてが良かった、という固定したら、そこに私はsave!
を呼んでいた
を解決しました。だから感謝@ house9!
Btw、私は基本的にエラーを追加した後に単にfalseを返すべきだと思います。 – apneadiving
'return false'は私のために何もしません。 – Corey
あなたは保存または保存を呼びますか?あなたのコントローラーで?コントローラの – house9