validationを使ってみる
自分で作ると割りと面倒なValidationもRailsでは数行でOK。
ということで簡単なサンプル。
#app/controllers/main_controller.rb class MainController < ApplicationController def new if params[:user] != nil @user = User.new params[:user] @user.save end end end #app/view/main/new.html.erb <%= error_messages_for :user %> <% form_for :user do |f| %> <%= f.text_field :name %> <%= f.submit "作成" %> <% end %> #app/model/user.rb class User < ActiveRecord::Base validates_presence_of :name, :message => "can't be blank" end
validationのタイミングは、デフォルトでは保存する時。なので、@user.saveをしないとエラーメッセージが出てこないので注意(最初ここではまった)。タイミングはオプションで変更できて、:save, :create, :update が使える。
validates_presence_of :name, {:on=>:update, :message => "can't be blank"}
指定できるvalidationはActiveRecord::Validations::ClassMethods辺りに載っているので、その都度探せばいいっぽい。
エラーメッセージはActiveHeartプラグインをインストールすれば日本語化出来るということだけど、ActiveHeartは使わない方がいいという話もあるみたいなので、今回は保留。