棒球比分直播球探:子在川上曰

  逝者如斯夫不舍晝夜
隨筆 - 71, 文章 - 0, 評論 - 915, 引用 - 0
數據加載中……

error_messages_for的中文化

在Rails中error_messages_for為國際化的考慮不是很周全,它顯示的是模型的字段名稱,這對于用戶來說是不友好的。為了解決這個問題,只能改它的源碼了----將如下方法,放入ApplicationHelper
文/陳剛? www.chengang.com.cn? 轉載請聲明出處

? def?error_messages_for(*params)
????
#add?by?glchengang
????key_hash?=?{}
????
if?params.first.is_a?(Hash)
??????key_hash?
=??params.first
??????params
.delete_at(0)
????end
????
#add?end

????options?
=?params.last.is_a?(Hash)???params.pop.symbolize_keys?:?{}
????objects?
=?params.collect?{|object_name|?instance_variable_get("@#{object_name}")?}.compact
????count???
=?objects.inject(0)?{|sum,?object|?sum?+?object.errors.count?}
????
unless?count.zero?
??????html?
=?{}
??????[
:id,?:class].each?do?|key|
????????
if?options.include?(key)
??????????value?
=?options[key]
??????????html[key]?
=?value?unless?value.blank?
????????
else
??????????html[key]?
=?'errorExplanation'
????????end
??????end
??????
#?change?by?glchengang
??????header_message?=?"有#{count}個錯誤"
#???????header_message?=?"#{pluralize(count,?'error')}?prohibited?this?#{(options[:object_name]?||?params.first).to_s.gsub('_',?'?')}?from?being?saved"
??????
??????#add?by?glchengang

??????error_messages?=?objects.map?do?|object|
????????temp?
=?[]
????????object
.errors.each?do?|attr,?msg|
??????????temp?
<<?content_tag(:li,?(key_hash[attr]?||?attr)?+?msg)?
????????end
????????temp
??????end
??????
#add?end

#????????error_messages?=?objects.map?{|object|?object.errors.full_messages.map?{|msg|?content_tag(:li,?msg)?}?}

??????content_tag(:div,
????????content_tag(options[
:header_tag]?||?:h2,?header_message)?<<
#???????????content_tag(:p,?'There?were?problems?with?the?following?fields:')?<<
??????????content_tag(:ul,?error_messages),
????????html
??????)
????
else
??????
''
????end
??end


使用依然兼容老的方式,你也可以傳入一個哈希表,把模型字段顯示成對應的中文,示例如下:
<%=?
h?
=?{'username'=>'用戶名',?'password'=>'密碼'}
error_messages_for?h
,?:user
%>

棒球比分大小怎么算 www.355548.live 另外,還要在environment.rb的最后插入以下代碼:

errors?=?ActiveRecord::Errors.default_error_messages
errors[
:taken]?=?'已經被使用'
errors[
:blank]?=?'不能為空'

posted on 2007-09-19 17:35 陳剛 閱讀(1696) 評論(0)  編輯  收藏 所屬分類: Rails&Ruby

{ganrao} 湖北11选5奖金是什么样 贵州快三走势图 聚天下配资 内部三肖期期中 浙江6十1开奖结果查询 炒股软件哪个好用 山西11选五彩票平台 怎样破解手机棋牌 英雄时时乐破解 股票开盘竞价 吉林快3预测图 河北省快3 四川快乐12中奖口诀 湖北快三胆拖玩法 广东好彩1开奖结果335 股票趋势软件下载