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

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

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

    子在川上曰

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

    error_messages_for的中文化

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

    ? 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]?=?'已經(jīng)被使用'
    errors[
    :blank]?=?'不能為空'

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

    主站蜘蛛池模板: 免费一级国产生活片| 成人毛片18女人毛片免费96 | 菠萝菠萝蜜在线免费视频| 一二三四在线观看免费高清中文在线观看| 亚洲精品~无码抽插| 中国在线观看免费的www| 亚洲无码在线播放| 免费成人在线电影| 亚洲系列中文字幕| 国产成人无码免费看视频软件| 亚洲免费闲人蜜桃| 日韩在线视频免费看| 麻豆亚洲AV成人无码久久精品| 免费播放特黄特色毛片| 黄色免费在线观看网址| 亚洲色自偷自拍另类小说| 国产啪精品视频网站免费尤物| 亚洲一区二区三区四区在线观看| 99re免费视频| 亚洲一线产区二线产区区| 国产精品久久香蕉免费播放| 一个人看的hd免费视频| 亚洲AV无码国产丝袜在线观看| 99re视频精品全部免费| 亚洲中文字幕久久久一区| 国产在线19禁免费观看| 久久成人永久免费播放| 亚洲国产精品久久久久久| 丁香花免费完整高清观看| 国产成人高清亚洲一区久久| 国产亚洲色婷婷久久99精品91| 免费黄网站在线看| 亚洲中文字幕一二三四区| 亚洲另类少妇17p| 中文字幕免费在线观看| 亚洲欧洲无卡二区视頻| 亚洲一区日韩高清中文字幕亚洲 | 免费国产作爱视频网站| 亚洲AV无码一区二区三区鸳鸯影院| 亚洲伊人成无码综合网| jjizz全部免费看片|