Ruby 板


LINE

由於我又快睡著了,所以就開始 trace rails... 我真的覺得,rails 好不好用先不說,他本身的程式碼真的是很漂亮, 把 ruby 精神發揮地非常徹底。 ※ 引述《shelary (台中喵小咩)》之銘言: : def validate : errors.add(:name,'名字裡不能有笨字哦!!' ) if name.index('笨') != nil : end : 他秀出來的訊息是英文的...例如: : 1 error prohibited this record from being saved : There were problems with the following fields: : ‧Name 名字裡不能有笨字哦!! : 請問...英文的部份要怎麼改成中文呢?? 之前 thegiive 跟我說,建議 error message 自己做, 不只是中英文的問題,顯示方式他似乎也不太喜歡預設的。 而根據我一路追下去的結果,error_messages_for 上的註解也這樣寫: (p.s. 根據 bbs 重新排版了) # NOTE: This is a pre-packaged presentation of the errors with # embedded strings and a certain HTML structure. If what you need # is significantly different from the default presentation, # it makes plenty of sense to access the object.errors instance # yourself and set it up. View the source of this method to see # how easy it is. 不過如果只是希望 attribute 能顯示中文,其他地方不需要改的話, 動這邊確實有點大動干戈﹍。 p.s. error_messages_for 我是從這邊追來的: vendor/plugins/active_scaffold_upload/frontends/default/views/ _form_messages.rhtml (^^^^^^^ 我目前用的版本) 所以再從 error_messages_for 裡開始追查,可以看到: object.errors.full_messages..... 於是再去尋找 full_messages, 在 ActiveRecord::Errors#full_messages 裡。 可以看到他呼叫:@base.class.human_attribute_name(attr) 也就是說,他其實是呼叫你的 model class 的 human_attribute_name 再去追查他的實做,可以看到: # Transforms attribute key names into a more humane format, such as # "First name" instead of "first_name". Example: # Person.human_attribute_name("first_name") # => "First name" # Deprecated in favor of just calling "first_name".humanize def human_attribute_name(attribute_key_name) #:nodoc: attribute_key_name.humanize end 所以其實只要改寫這段程式碼就可以了,如: class User def self.human_attribute_name attr case attr when :name then '名字' when :ouch then '好痛' end end end 要善加利用 open source 啊 ccc -- In Lisp, you don't just write your program down toward the language, you also build the language up toward your program. 《Programming Bottom-Up》- Paul Graham 1993 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.218.90.242
1F:推 ryudo:感謝~~原來如此..本來都是搞到要用多語化那個套件 08/29 23:17
2F:推 shelary:我後來還是在 helper 覆蓋改寫 error_messages_for 08/30 11:37
3F:→ shelary:必竟一般人還是不習慣看英文的訊息..尤其是錯誤訊息 08/30 11:38
4F:→ shelary:光改欄位名..如果欄位一多..反而更麻煩.. 08/30 11:39
5F:→ zusocfc:用hash可以辦到阿..0.0" 09/06 18:11







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:e-shopping站內搜尋

TOP