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]