RubyOnRails中出错信息自定义(如字段别名等)
2009-05-25 12:30
337 查看
ApplicationHelper.rb文件中追加如下方法:
Model层的定义如下:
参考资源:
http://www.javaeye.com/topic/77773
# Methods added to this helper will be available to all templates in the application. module ApplicationHelper def error_messages_for(object_name, options = {}) options = options.symbolize_keys object = instance_variable_get("@#{object_name}") if object && !object.errors.empty? content_tag("div", content_tag( options[:header_tag] || "h2", "データ#{object.class::ALIAS}を更新する時#{object.errors.count}個エラーが発生しました。" ) + content_tag("ul", object.errors.collect { |attr, msg| content_tag("li", object.class::COLUMN_ALIASES[attr] + msg) }), "id" => options[:id] || "errorExplanation", "class" => options[:class] || "errorExplanation" ) else "" end end end
Model层的定义如下:
class Work < ActiveRecord::Base #has_one :user ALIAS = '勤務時間' COLUMN_ALIASES = { 'adate' => '日付: ', 'btime' => '作業開始時間: ', 'ctime' => '作業終了時間: ', 'content' => '作業内容: ' } validates_presence_of :adate, :btime, :ctime, :message => "該当データが入力してください!" validates_numericality_of :btime, :ctime, :message => "勤務時刻を半角数字で入力してください!" validates_uniqueness_of :adate, :scope => "ip", :message => "該当日付の勤務時間が既に登録した!" validate :validates_worktime_values protected def validates_worktime_values if btime.nil? || btime.length < 4 errors.add(:btime, '該当データを半角4桁で入力してください!') else if substr(btime,2,4).to_s != '00' && substr(btime,2,4).to_s != '30' errors.add(:btime, '該当データを30分単位で入力してください!') end end if ctime.nil? || ctime.length < 4 errors.add(:ctime, '該当データを半角4桁で入力してください!') else if substr(ctime, 2,4).to_s != '00' && substr(ctime,2,4).to_s != '30' errors.add(:ctime, '該当データを30分単位で入力してください!') end end end private def substr(str,start,length) str.split(//)[start,length] end end
参考资源:
http://www.javaeye.com/topic/77773
相关文章推荐
- Ruby On Rails 自定义错误页面的显示信息 指定显示页面
- 使用update!导致的更新时候的错误信息不显示 ruby on rails
- 如何修改RubyOnRails中ActiveRecord默认的表格名和外键字段映射关系?
- Ruby on Rails Tutorial第三章关于$ bundle exec respec 出错的问题的解决方案
- Ruby on Rails微信开发3——自定义菜单的创建
- Ruby on Rails微信开发4——通过网页授权获取用户的基本信息
- ruby on rails校验信息修改为中文
- 使用update!导致的更新时候的错误信息不显示 ruby on rails
- Ruby on Rails,数据库迁移任务出错后的解决办法
- Ruby on rails安装后去掉DL is deprecated,please use Fiddle警告信息的方法【测试可用】
- Ruby on Rails,数据库迁移任务出错后的解决办法
- 使用 XForms 和 Ruby on Rails 开发小型门诊管理系统,第 2 部分:实现患者信息 Xform
- Ruby on rails开发从头来(windows)(二十五)-测试Controller
- mac下ruby on rails环境搭建
- 调查发现开发者爱.NET,不喜欢MFC和Ruby on Rails,徐汇区网站设计
- Ruby on Rails 入门之:(5) Ruby中基本数据类型
- 国内Ruby On Rails最新动态
- Ruby on Rails 入门之:(6) Ruby中常用运算符
- ruby on rails 学习
- Ruby on Rails 入门之:(8) Ruby中条件语句