&pgid
 &pgid;
 **Ruby on Rails勉強会一覧 [#dd041670]
 #ls2(Ruby on Rails)
 
 **第6回勉強会のネタ [#jeadb044]
 ネタもとは下記です。
 
 -Module: ActiveRecord::Validations
 http://rails.rubyonrails.com/classes/ActiveRecord/Validations.html
 -Module: ActiveRecord::Validations::ClassMethods
 http://rails.rubyonrails.com/classes/ActiveRecord/Validations/ClassMethods.html
 -Class: ActiveRecord::Errors
 http://rails.rubyonrails.com/classes/ActiveRecord/Errors.html
 
 **日時 [#g4f8ac7b]
 - 2006/10/20(金) 19:30くらい 〜
 
 **参加者 [#u5cc1f6d]
 -[[志田]](発表者) ([[アークウェブ:http://www.ark-web.jp]])
 -[[竹村]]さん ([[アークウェブ:http://www.ark-web.jp]])
 -[[進地]]さん ([[アークウェブ:http://www.ark-web.jp]])
 
 
 #blikimore
 
 ** 動画 [#g3db69c1]
 #htmlinsert(study/rails6-1.html)
 
 **概要 [#hff6572b]
 -Active Recordは Base#validate (または、validate_on_create や validate_on_update)をオーバーライドで検証コードを書くことで、独自の検証を行なわせることができます。
 - これらのメソッドは、オブジェクトの状態を検査し、モデル内の各インスタンス変数が、たとえば、空ではない、与えられた範囲内の値である、ある正規表現にマッチする、などなどの条件にマッチすることを保証します。
 
 ** サンプルDB [#d2f3e5b5]
     create_table :people do |t|
       t.column :first_name,   :string
       t.column :last_name,    :string
       t.column :phone_number, :string
 
 ** 検証コード [#bb77001a]
 app/model/person.rb
 
  class Person < ActiveRecord::Base
  
    def validate
     errors.add_on_empty(:last_name, "姓をちゃんと入力してください。")
     errors.add_on_empty(:first_name, "名をちゃんと入力してください。")
     errors.add(:phone_number, "電話番号は数字で入力してください。") unless phone_number =~ /[0-9]+/
  
    end
  end
 -validateメソッドはsaveメソッドを呼び出す(または、valid? メソッドを呼ぶ)と呼び出されます。
 -validate_on_createは、saveの結果そのレコードが新規追加の場合、validate_on_updateは更新の場合に呼ばれます。
 **エラーメッセージの追加 [#fbd4191c]
 - ActiveRecord::Errors#add
 - ActiveRecord::Errors#add_on_empty
 - ActiveRecord::Errors#add_on_boundary_breaking
 
 ** エラーメッセージの取得 [#h5732a96]
 - ActiveRecord::Errors#empty?
 - ActiveRecord::Errors#count
 - ActiveRecord::Errors#on
 - ActiveRecord::Errors#each
 
  <%- if defined? (@person) -%>
  <h3>エラー結果</h3>
  <div>エラーないですよね? : <%= @person.errors.empty? -%></div>
  <div>エラーの数は? : <%= @person.errors.count -%></div>
  <div>姓に対するエラーは? : <%= @person.errors.on "last_name" -%></div>
  <div>名に対するエラーは? : <%= @person.errors.on "first_name" -%></div>
  <div>電話番号に対するエラーは? : <%= @person.errors.on :phone_number -%></div>
  <div>エラーメッセージ一気にお願いします。: <br />
  <ul>
  <%- @person.errors.each do |attr, msg| -%>
  <li><%= msg -%></li>
  <%- end -%>
  </ul>
  <%- end -%>
 
 
 ** 検証ヘルパー [#r511e740]
 
 #blikifooter(志田)
 
 
 tag: [[Ruby on Rails>tag/Ruby on Rails]], [[勉強会>tag/勉強会]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

アークウェブのサービスやソリューションはこちら