1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Rails バリデーション書き方

Last updated at Posted at 2021-01-20

アウトプットで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]書けば完成。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?