アウトプットでRailsでのバリデーションの書き方を載せます。
データが正しいかどうかを検証するのがバリデーションになります。
まずモデルにて
user.rb
class User < ApplicationRecord
validates :nickname, presence: true
:nickname #カラム名
presence: true #空でない事
次にコントローラ
user_controller.rb
class UsersController < ApplicationController
def new
@user = User.new
end
def create
@user = User.new(user_params)
if
@user.valid? #ここ!!ここ!!!
@user.save
redirect_to root_path
else
render 'new'
end
end
private
def user_params
params.require(:item).permit(
:nickname
end
end
valid?メソッドでバリデーションが実行。バリデーションが通ればtrueを返します。
流れとしてはnewアクションで生成したものをcreateアクションで保存する時に値が入ってるのかをバリデーションで確認します。
if文を使い入っていれば@user.saveで保存。空ならrender 'new'でアラートを出す。
,
,
user.html.haml
= f.text_field :nickname, class: "nickname"
.error-messages
= @user.errors.full_messages_for(:nickname)[0]
ビューには、保存するnicknameと、エラー文の表示の = @user.errors.full_messages_for(:nickname)[0]書けば完成。