%h1 Add New
= form_for @project do |f|
%p
= f.label :title
%br
= f.text_field :title
- if @project.errors.any?
= @project.errors.inspect
%p
= f.submit
例えばこんな感じで、.errors.inspectとすると、エラーの内容を確認することができる。ドットインストールでやってた。
#<ActiveModel::Errors:0x007fd1635c5b48 @base=#<Project id: nil, title: "", created_at: nil, updated_at: nil>, @messages={:title=>["can't be blank"]}>で、こんなエラーが出たので、@messagesの内容を拾ってもっともらしいエラーを表示させよう、と。
= @project.errors.messages[:title][0]:titleの0番目の要素なのでこんな書き方をするみたいだけど、[0]を外してみたら["can't be blank"] と表示された。よくわからない。
ちなみに、独自のエラーメッセージを表示させる場合には、モデル/app/models内に書くことで可能。
class Project < ActiveRecord::Base
validates :title,
presence: { message: '空はダメ!' },
length: { minimum: 3, message: '短い!'}
end
あ、すんません。hamlで書いてます。
0 件のコメント:
コメントを投稿