Klo saya sih coba tetep pake error_messages_for, cuma application_helper.rb nya 
di overide (cara kotor ga yah ?)

module ApplicationHelper
  def error_messages_for(object_name, options = {})
      options = options.symbolize_keys
      object = instance_variable_get("@#{object_name}")
      if object && !object.errors.empty?
           content_tag("div",
       content_tag(
         options[:header_tag] || "h2",
         "#{object.errors.count} error ditemukan"
       ) +
       content_tag("p", "Berikut ini daftar errornya:") +
       content_tag("ul", object.errors.full_messages.collect do |msg|
       content_tag("li", msg.gsub(/^\w+ /,""))
       end
       ),
       "id" => options[:id] || "errorExplanation", 
       "class" => options[:class] || "errorExplanation"
     )
     else
         ""
     end
   end
end

emang ada beberapa kelemahan sih, mungkin untuk msg.gsub(/^\w+ /,"") perlu 
diperbaiki lagi

----- Original Message ----
From: Aditya Agustyana <[EMAIL PROTECTED]>
To: [email protected]
Sent: Monday, September 3, 2007 2:13:31 PM
Subject: [id-ruby] Re: custom error messages di rails









  


    
            --- In [EMAIL PROTECTED] .com, dhendy ferdian <dhendy_ferdian@ ...> 
wrote:

>

> Klo aku biasa pake "error_message_ on" dit

> 

> implementasi sederhananya kaya gini

> "mau kasih validasi not null di field description"

> 

> di Modelnya

> ==========

> 

> validates_presence_ of :description, :message => "tidak boleh kosong"

> 

> di viewnya

> ========

> <%= flash[:notice] %>

> 

> ....

> <label>

>   <em>Description< /em><%= text_field 'object','descripti on' %>

>   <%= error_message_ on 'onject', 'description' %>

> </label>

> .....

> 

> di controllernya

> ===========

> bikin konstanta

> SUCCESS = "Your changes have been saved.".freeze

> ERROR = "Please check below for any highlighted mistakes..." .freeze

> 

> def create

> .....

>    if @threshold.save

>       flash[:notice] = SUCCESS

>       redirect_to :action => 'list'      

>     else

>       flash[:notice] = ERROR

>       render :action => 'new'

>     end

> ......

> end

> 

> 

> kurang lebih nya gitu .... :)

> 

> thanks,

> Dhendy Ferdian

> 

> Aditya Agustyana <aditya_jamop@ ...> wrote:                         

     secara situs ini down

>  http://wiki. rubyonrails. org/rails/ pages/Custom+ Error+Message, daku

>  cukup kesulitan gmn caranya bikin custome error messages buat active

>  -record (misale translate pesan itu ke bhs indonesia) 

>  

>  terutama yang kata2 ini 1 errors prohibited this user from being saved

>  

>  bisa aja sih method <%= error_messages_ for %> di gsub, tapi aku

>  ngerasa itu cara "kotor", lagian kan error yg muncul bisa lebih

dari satu

>  

>  sohibs, ada yg tau gmn ngakali hal ini ?

>  

>  makasih sebelumnya

>  

>  

>      

>                                

> 

>        

> ------------ --------- --------- ---

> Take the Internet to Go: Yahoo!Go puts the Internet in your pocket:

mail, news, photos & more. 

> 

> [Non-text portions of this message have been removed]

>

oalah kata2 "being saved-nya" diakali pake flash yak (xixixi kagak

kepikiran) ..., hmm ide bagus nih... tak coba ah





    
  

    
    




<!--

#ygrp-mkp{
border:1px solid #d8d8d8;font-family:Arial;margin:14px 0px;padding:0px 14px;}
#ygrp-mkp hr{
border:1px solid #d8d8d8;}
#ygrp-mkp #hd{
color:#628c2a;font-size:85%;font-weight:bold;line-height:122%;margin:10px 0px;}
#ygrp-mkp #ads{
margin-bottom:10px;}
#ygrp-mkp .ad{
padding:0 0;}
#ygrp-mkp .ad a{
color:#0000ff;text-decoration:none;}
-->



<!--

#ygrp-sponsor #ygrp-lc{
font-family:Arial;}
#ygrp-sponsor #ygrp-lc #hd{
margin:10px 0px;font-weight:bold;font-size:78%;line-height:122%;}
#ygrp-sponsor #ygrp-lc .ad{
margin-bottom:10px;padding:0 0;}
-->



<!--

#ygrp-mlmsg {font-size:13px;font-family:arial, helvetica, clean, sans-serif;}
#ygrp-mlmsg table {font-size:inherit;font:100%;}
#ygrp-mlmsg select, input, textarea {font:99% arial, helvetica, clean, 
sans-serif;}
#ygrp-mlmsg pre, code {font:115% monospace;}
#ygrp-mlmsg * {line-height:1.22em;}
#ygrp-text{
font-family:Georgia;
}
#ygrp-text p{
margin:0 0 1em 0;}
#ygrp-tpmsgs{
font-family:Arial;
clear:both;}
#ygrp-vitnav{
padding-top:10px;font-family:Verdana;font-size:77%;margin:0;}
#ygrp-vitnav a{
padding:0 1px;}
#ygrp-actbar{
clear:both;margin:25px 0;white-space:nowrap;color:#666;text-align:right;}
#ygrp-actbar .left{
float:left;white-space:nowrap;}
.bld{font-weight:bold;}
#ygrp-grft{
font-family:Verdana;font-size:77%;padding:15px 0;}
#ygrp-ft{
font-family:verdana;font-size:77%;border-top:1px solid #666;
padding:5px 0;
}
#ygrp-mlmsg #logo{
padding-bottom:10px;}

#ygrp-vital{
background-color:#e0ecee;margin-bottom:20px;padding:2px 0 8px 8px;}
#ygrp-vital #vithd{
font-size:77%;font-family:Verdana;font-weight:bold;color:#333;text-transform:uppercase;}
#ygrp-vital ul{
padding:0;margin:2px 0;}
#ygrp-vital ul li{
list-style-type:none;clear:both;border:1px solid #e0ecee;
}
#ygrp-vital ul li .ct{
font-weight:bold;color:#ff7900;float:right;width:2em;text-align:right;padding-right:.5em;}
#ygrp-vital ul li .cat{
font-weight:bold;}
#ygrp-vital a{
text-decoration:none;}

#ygrp-vital a:hover{
text-decoration:underline;}

#ygrp-sponsor #hd{
color:#999;font-size:77%;}
#ygrp-sponsor #ov{
padding:6px 13px;background-color:#e0ecee;margin-bottom:20px;}
#ygrp-sponsor #ov ul{
padding:0 0 0 8px;margin:0;}
#ygrp-sponsor #ov li{
list-style-type:square;padding:6px 0;font-size:77%;}
#ygrp-sponsor #ov li a{
text-decoration:none;font-size:130%;}
#ygrp-sponsor #nc{
background-color:#eee;margin-bottom:20px;padding:0 8px;}
#ygrp-sponsor .ad{
padding:8px 0;}
#ygrp-sponsor .ad #hd1{
font-family:Arial;font-weight:bold;color:#628c2a;font-size:100%;line-height:122%;}
#ygrp-sponsor .ad a{
text-decoration:none;}
#ygrp-sponsor .ad a:hover{
text-decoration:underline;}
#ygrp-sponsor .ad p{
margin:0;}
o{font-size:0;}
.MsoNormal{
margin:0 0 0 0;}
#ygrp-text tt{
font-size:120%;}
blockquote{margin:0 0 0 4px;}
.replbq{margin:4;}
-->








      
____________________________________________________________________________________
Park yourself in front of a world of choices in alternative vehicles. Visit the 
Yahoo! Auto Green Center.
http://autos.yahoo.com/green_center/ 

[Non-text portions of this message have been removed]

Kirim email ke