« [本] 日常の謎を題材にした連作短編ミステリ | トップページ | [Ruby] error_messages_for in Rails 3 (続き) »

2011年8月13日 (土)

[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 のエラーメッセージは、わかりやすく丁寧だな。

|

« [本] 日常の謎を題材にした連作短編ミステリ | トップページ | [Ruby] error_messages_for in Rails 3 (続き) »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: [Ruby] error_messages_for in Rails 3:

« [本] 日常の謎を題材にした連作短編ミステリ | トップページ | [Ruby] error_messages_for in Rails 3 (続き) »