📝
バリデーション使用時の構文エラー
Rails Tutorial2 章[toy_app の作成]で単純な構文エラーに遭遇しました。
/app/models/user.rb: syntax error, unexpected label, expecting end
validates :name presence: true
^~~~~
構文エラー解決前のコードは以下のとおりです。
class User < ApplicationRecord
has_many :microposts
validates :name presence: true,
validates :email presence: true
end
バリデーション使用時の正しい構文はこちらです。
validates :{カラム名}, {ルール名}: {ルールの内容}
複数のカラム、複数のバリデーションを設定する場合
validates :{カラム名 1},{カラム名 2}, {ルール名 1}: {ルールの内容},
{ルール名 2}: {ルールの内容}
修正後のコードはこちらです。
class User < ApplicationRecord
has_many :microposts
validates :name, presence: true
validates :email, presence: true
end
以上で解決しました。
記述する際のポイント
- :「,」抜け → Syntax Error(構文エラー)
- :「{}」の過不足(length: maximum:3, {presence: true} というような間違い)→ Argument Error(引数エラー)
Discussion