[Ruby] error_messages_for in Rails 3
Rails 3(Rails 3.0.9) で、error_messages_for を使ったら
DEPRECATION WARNING: error_messages_for was removed from Rails and is now available
as a plugin. Please install it with
`rails plugin install git://github.com/rails/dynamic_form.git`.
と言われた。
調べてみたら、No more error_messages_for in Rails 3
が見つかった。
Apparently the old error_messages_for violated the core Rails principles of never
dictating the look and feel of an application.
ということらしい。
plugin をインストールしないで、自力で似たようなことをやるには、どうするかちょっと調べてみた。
どうやら、model クラスの中で定義した validation のエラーの情報は、errors メソッドで取り出すことができるみたい。
たとえば
class MyModel < ActiveRecord::Base
validates_presence_of :member1
end
となっている場合、validation のエラーの内容は
@mymodel.errors
で参照できる。View 側では、
<% if @mymodel.errors.size > 0 %>
<ul>
<% @mymodel.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
<% end %>
みたいな感じにすればよい。
それにしても Rails3 のエラーメッセージは、わかりやすく丁寧だな。
| 固定リンク
この記事へのコメントは終了しました。
コメント