バリデーションを指定したアクションにのみかける方法
どうもチャンクノです!!!
今回はバリデーションを指定したアクションにのみかける方法について書いていきます。
昨日個人アプリの編集機能を使ってて変更点が反映されずに困っていました。
ターミナルを見てもエラーはない。むむむ、、、
ここで私の中で一つ仮説が閃きました。(天才!!!)
「もしかしてバリデーションが関係している?」
validates :name, :account, presence: true, uniqueness: true
validates :tag_list, presence: true,
こちらが記述を追加する前のコードです。
まずはこのバリデーションを全て突破する形で編集機能を使ってみた結果、ビンゴ!!!
編集内容がちゃんと反映されていました。(天才!!!)
で、ここからが問題ですね。
どうやってCreateの時のみバリデーションをかけるのか。
「rails バリデーション createのみ実行」で検索、、、
ビンゴ!!!(天才!!!)
validatesの後にon: :アクション名を書けばいいみたいです。
どうするかというと
validates :name, :account, presence: true, uniqueness: true, on: :create
validates :tag_list, presence: true, on: :create
こう!!!
これでCreateアクションの時のみバリデーションがかかるようにできました!!!
いやーバリデーションは必然的にCreateのみにかかるものだと思っていたけど違うんですね。
お勉強になりました。
皆さんもバリデーションには気をつけてください。
それでは皆様の良きプログラミングライフを祈って🙏🙏🙏
Author And Source
この問題について(バリデーションを指定したアクションにのみかける方法), 我々は、より多くの情報をここで見つけました https://qiita.com/kt215prg/items/2df34f0993680f56b605著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .