モデルにvalidates, xxx, presence: true
という形でバリデーションを記述しますが、ここに該当するxxxをビューから送信しない場合は、バリデーションに引っかかるのでしょうか?
例えばビューからツイートに関するcontent
を送ったとします。ライターは、コントローラ側で追加するとして、モデルとコントローラそれぞれ、以下のような記述になるとします。
コントローラ
省略 def create Tweet.create(tweet_params) end private def tweet_params params.require(:tweet).permit(:content).merge(user_id: current_user.id) end 省略
モデル
class User < ActiveRecord::Base 省略 validates :content, :user_id, presence: true 省略 end
この場合だと、user_idはビューから送っていませんが、バリデーションに引っかかるのでしょうか?
自分の場合、試しても引っかからないのですが、知り合いがそのようなことは無いと言っているので、バリデーションがどの段階で作動するのかを教えてほしいです(コントローラのアクション後なのか、前なのか、そもそもビューから送らないものは全て引っかかるのか etc)。
宜しくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/17 05:17