私はオンラインで素晴らしい例を見つけていないので、簡単な質問をして簡単な答えを得ることができます。穏やかな。 :)モデルによるカスタム検証:保存に失敗しました
私は投稿モデルを持っています。
p = Post.find(1)
p.title = "This is the Title of this Article"
p.url_title = "this-is-the-title-of-this-article--created-by-user-name"
投稿が作成されると、タイトルに基づいて:url_titleが作成されます。これは、退屈で非記述的なIDを公開するのではなく、データベースでキーオフする方法です。
私はこれをビルドします:before_saveにurl_titleを入れて、なぜvalid_uniqueness_ofを使うことができないのですか?before_saveが始まる前にバリデーションが行われているように見えるため、url_titleを検証します。
したがって、私は次のことを保証する必要があります。url_titleは一意です。私は "--created-by-#{p.user.name}"を追加して、異なるユーザーから同じタイトルを複数使用することを許可します。
私は、保存する前にデータベースに固有のurl_titleを確認し、一意でない場合は、エラーを発生させてユーザーに知らせるカスタム確認を行う必要があります。
これを行う最善の方法についての考え方はありますか? 「
おっとをurl_titleするための適切な検証を追加url_title
を作成します。私は重要な部分を省いた。私の改訂された記事を見てください。 –