読者です 読者をやめる 読者になる 読者になる

プログラミングノート

一からものを作ることが好きなエンジニアの開発ブログです。

validationを使ってみる

Rails

自分で作ると割りと面倒な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は使わない方がいいという話もあるみたいなので、今回は保留。