<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 陳剛 閱讀(1822) 評論(0)  編輯  收藏 所屬分類: Rails&Ruby

    主站蜘蛛池模板: a级片免费观看视频| 亚洲s色大片在线观看| **毛片免费观看久久精品| 美女扒开屁股让男人桶爽免费| 亚洲视频在线观看网址| 亚洲熟妇av一区二区三区| 日本19禁啪啪无遮挡免费动图| 最近免费中文字幕大全免费| 99精品视频免费| 日韩成人毛片高清视频免费看| 亚洲av无码偷拍在线观看| 亚洲av片不卡无码久久| 亚洲黄网站wwwwww| 亚洲成AV人片在线播放无码| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 亚洲18在线天美| 亚洲自偷精品视频自拍| 无码久久精品国产亚洲Av影片| 久久久久亚洲精品无码网址| 免费真实播放国产乱子伦| 热久久精品免费视频| 成人毛片18女人毛片免费| ww4545四虎永久免费地址| 最近免费mv在线电影| 久久精品一本到99热免费| 精品国产一区二区三区免费| 在线观看片免费人成视频播放| 国产精品玖玖美女张开腿让男人桶爽免费看 | 亚洲成A人片在线观看无码3D| 宅男666在线永久免费观看| 毛片网站免费在线观看| 青春禁区视频在线观看直播免费| 18pao国产成视频永久免费| aⅴ在线免费观看| 无人在线直播免费观看| 一区二区无码免费视频网站| 精品久久久久成人码免费动漫| 国产精品久久久久久久久免费| AV无码免费永久在线观看| 久久久www成人免费毛片| 免费无码黄网站在线观看|