<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    子在川上曰

      逝者如斯夫不舍晝夜
    隨筆 - 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
    %>

    另外,還要在environment.rb的最后插入以下代碼:

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

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

    主站蜘蛛池模板: 亚洲精品无码av天堂| 国产一级淫片a免费播放口之| 亚洲乱码一区av春药高潮| 无码少妇一区二区浪潮免费| 亚洲狠狠色丁香婷婷综合| 日韩精品亚洲aⅴ在线影院| 久久国产精品成人片免费| 亚洲成a∧人片在线观看无码| 国产亚洲AV无码AV男人的天堂| 日韩精品内射视频免费观看 | 国产亚洲精品免费| 中文无码成人免费视频在线观看| 亚洲va乱码一区二区三区| av在线亚洲欧洲日产一区二区| 亚洲视频在线免费播放| 成人a毛片免费视频观看| 亚洲欧洲日本精品| 亚洲综合色视频在线观看| 2021国产精品成人免费视频| av片在线观看永久免费| 亚洲啪啪免费视频| 亚洲精品国产精品乱码视色 | 免费一级毛片在线播放放视频| 亚洲国产精品婷婷久久| 在线a亚洲v天堂网2018| 成人免费的性色视频| a毛片免费在线观看| 色欲aⅴ亚洲情无码AV| 亚洲黄色在线播放| 中文字幕亚洲天堂| 国产国产人免费人成免费视频 | 国产色爽免费无码视频| 理论亚洲区美一区二区三区| 亚洲精品美女视频| 亚洲AV一宅男色影视| 亚洲国产成人久久笫一页| 毛片a级毛片免费观看品善网| 久久国产精品2020免费m3u8| 国产精品内射视频免费| 阿v免费在线观看| 亚洲爆乳无码专区www|