今天不忙了,写点关于rails提示错误消息的方法,不完全的
因为默认的错误信息很难看,所以想去掉上面的英文信息,本地化信息
如果有辛能帮助你,甚感荣幸!
首先在rails1.2文档或者网上找到error_messages_for的源码,如下:
120: def error_messages_for(*params)
121: options = params.last.is_a?(Hash) ? params.pop.symbolize_keys : {}
122: objects = params.collect {|object_name| instance_variable_get("@#{object_name}") }.compact
123: count = objects.inject(0) {|sum, object| sum + object.errors.count }
124: unless count.zero?
125: html = {}
126: [:id, :class].each do |key|
127: if options.include?(key)
128: value = options[key]
129: html[key] = value unless value.blank?
130: else
131: html[key] = 'errorExplanation'
132: end
133: end
134: header_message = "#{pluralize(count, 'error')} prohibited this #{(options[:object_name] || params.first).to_s.gsub('_', ' ')} from being saved"
135: error_messages = objects.map {|object| object.errors.full_messages.map {|msg| content_tag(:li, msg) } }
136: content_tag(:div,
137: content_tag(options[:header_tag] || :h2, header_message) <<
138: content_tag(:p, 'There were problems with the following fields:') <<
139: content_tag(:ul, error_messages),
140: html
141: )
142: else
143: ''
144: end
145: end
出现英文信息的是134行和138和139行,其他的不管,就改这三行
首先把134行的header_message引号去掉 改成header_message=""就好了
再到138行把单引号的内容去掉也OK了
139行就是我们在模型里定义的message信息了,不要修改拉
还有一点小提示:
在模型里有validate方法里,默认的是
error_add(:price,"前面的price是字段名,具体信息具体对待,里面这写就是显示在网页里的内容!")
这样的话网页里还会出现"Price"字样,我们可以不需要它
改为
error_add("","djisjdijisdf");
或者
error_add("价格","djisjdijisdf");
好了,就写到这里了,对你有帮助吗?
分享到:
- 2007-11-09 13:32
- 浏览 1525
- 评论(2)
- 论坛回复 / 浏览 (1 / 2809)
- 查看更多
相关推荐
4. **数据库配置**:Rails默认使用SQLite数据库,但你可以根据需求更改到MySQL或PostgreSQL等。修改`config/database.yml`文件来配置你的数据库连接。 5. **模型-视图-控制器**:Rails的MVC架构使得数据模型、用户...
如果问题仍未解决,可以使用`install_name_tool`命令来更改动态链接库的名称: ```bash sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql-5.6.26-osx10.8-x86_64/lib/libmysqlclient....
- **处理验证错误**:展示如何处理验证失败的情况,并返回适当的错误信息。 - **在视图中显示验证错误**:教授如何在前端视图中优雅地显示验证错误。 #### ActiveRecord回调 - **对象的生命周期**:解释...
同时,如果你有特定需求,也可以开发自定义插件或修改源码。 13. **备份与迁移**:定期备份Redmine的数据和配置,以便在出现问题时恢复。迁移至新服务器时,需确保新的环境与旧环境兼容,并正确处理数据库迁移。 ...
- **创建Rails项目**:同样地,也可以创建Rails项目,并利用NetBeans提供的各种特性来加速开发流程。 #### 三、配置环境 - **注册Ruby安装**:为了更好地管理Ruby版本,NetBeans允许用户注册不同的Ruby环境。 - **...
对于数据可视化,Rails Erd提供了一个很好的解决方案,特别是在复杂的应用程序中,清晰的ERD可以帮助团队成员更好地协作,避免因为数据库设计的不清晰导致的错误。同时,它也方便非开发人员理解系统的数据模型,比如...
Rails拥有庞大的开发者社区和丰富的第三方gem库,如Devise(身份验证)、Pundit(授权)、Bootstrap(前端框架)等,可以极大地扩展Rails的功能。 通过上述的Ruby on Rails实践,你可以逐步掌握这一强大的Web开发...
- **数据库重构**:Rails支持在开发过程中灵活地修改数据库结构,这在敏捷开发中尤为重要,因为需求的变化可能会导致数据模型的调整。 - **代码生成器**:Rails提供了强大的代码生成工具,帮助开发者快速搭建起...
开发者可以使用新的方法,如`change_table`和`add_index`,来更方便地修改数据库结构。 5. **Asset Pipeline**:Rails 3引入了资产管道(Asset Pipeline),这是一个强大的工具,用于管理和优化JavaScript、CSS和...
- **变量查看**:在调试过程中查看和修改变量值,更好地理解程序运行状态。 - **单步执行**:逐行执行代码,便于跟踪逻辑流程。 - **项目管理**: - **文件浏览**:直观地管理项目文件结构,轻松导航至目标文件。...
综上所述,利用Ruby on Rails开发学生选课系统,不仅可以充分利用其高效的开发模式和丰富的社区资源,还能为教育信息化带来更便捷、安全的解决方案。在这个过程中,开发者需要深入理解Rails的核心概念,熟练掌握MVC...
- **保存成果**: 测试可以防止错误引入到生产环境中。 - **行为驱动开发(Behavior-driven development, BDD)**: - **RSpec**: 一种专注于测试行为而不是内部实现细节的测试框架。 - **Cucumber**: 用于编写可读性...
例如,它支持即时编译和代码热重载,开发者可以在浏览器中实时查看代码更改的效果,极大地提高了开发速度和满意度。 综上所述,《敏捷Web开发与Rails》这本书不仅介绍了Rails框架的技术细节,还分享了使用Rails进行...
总的来说,这个项目提供了了解和实践Rails开发的绝佳机会,尤其对于初学者,可以通过运行和修改代码,亲身体验Rails的强大和便捷。同时,IntelliJ IDEA的集成环境使得调试和学习过程更为顺畅。无论你是Ruby新手还是...
编写测试并运行`rails test`或`rspec`来确保更改没有引入新的错误。 10. **Gemfile和bundle**:当你添加或更新gem时,确保运行`bundle install`或`bundle update`来安装或更新依赖,并确保所有gem都在正确的版本下...
2. **Ajax动作**:Rails控制器可以定义专门处理Ajax请求的动作,返回JSON或XML等格式的数据。 3. **Helper方法**:如`link_to`和`button_to`等助手方法可以轻松创建Ajax链接和按钮,只需添加`:remote => true`参数...
1. **环境设置**:首先,你需要为生产环境配置你的Rails应用,这通常涉及修改`config/environments/production.rb`文件,调整数据库连接、日志级别和其他性能相关的设置。 2. **Web服务器选择**:常见的Rails服务器...