`
viva_yang
  • 浏览: 35745 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

rails errors 自定义

 
阅读更多
    module ApplicationHelper 
      def error_messages_for(*params) 
        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 
          header_message = ""#"#{pluralize(count, 'error')} prohibited this #{(options[:object_name] || params.first).to_s.gsub('_', ' ')} from being saved" 
          #error_messages = objects.map {|object| object.errors.full_messages.map {|msg| content_tag(:li, msg) } } 
          error_messages = objects.map do |object| 
            full_messages = [] 
            object.errors.each do |attr,msg| 
              full_messages << msg unless msg.nil? || msg.blank? 
            end 
            full_messages.map{|msg| content_tag(:li,msg)} 
          end 
          content_tag(:div, 
            content_tag(options[:header_tag] || :h2, header_message) << 
              content_tag(:p, '发生以下错误:') << 
              content_tag(:ul, error_messages), 
            html 
          ) 
        else 
          '' 
        end 
      end 
    end 
分享到:
评论

相关推荐

    Ruby-ActiveModel的自定义验证用于检查数组是否包含在另一个中

    在Ruby开发中,ActiveModel是Rails框架的一部分,它提供了一种模型层的接口,使得非ActiveRecord对象也能具有类似于ActiveRecord的行为。这个标题提到的"Ruby-ActiveModel的自定义验证用于检查数组是否包含在另一个...

    exception_handler::bomb:自定义错误页面:bomb:Ruby on Rails→将RubyRails异常转换为品牌的4xx5xx HTTP错误页面

    拥有290,000多个下载量,这是*唯一* gem,可为Rails 5和6提供自定义的400/500异常页面 当前 (2018年8月) :memo: - :warning_selector: - :wrench: - :telephone_selector: - :white_medium_star: :memo: 介绍 ...

    Ruby on Rails中的ActiveRecord编程指南

    record.errors[attribute] (options[:message] || 'is not a valid email') unless value =~ /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i end end class Person validates :email, email: true end ``` #### ...

    强大功能:为Rails应用动态呈现错误页面或JSON响应的简单而安全的方法

    它甚至提供了一种创建自定义例外应用程序的方法。 易于安装和开发 您不必配置每个人必须要做的事情,Rambulance可以为您做所有事情。 安装及使用 将此行添加到您的应用程序的Gemfile中: gem 'rambulance' 然后...

    使用ActiveRecord验证密码强度_Ruby_下载.zip

    `password_strength_validator` gem提供了一个现成的解决方案,它可以方便地集成到Rails项目中,无需编写自定义验证器。首先,添加gem到Gemfile,然后运行`bundle install`安装。 ```ruby # Gemfile gem 'password...

    rail 4 days

    **Displaying Errors trapped by the Data Model** 当模型验证失败时,需要在视图中显示错误消息。这通常是通过专门的方法来处理的。 **Creating a Form with minimal coding** 利用 Rails 的辅助方法,可以快速...

    Ruby-marginalia添加评论至ActiveRecord的SQL查询

    例如,你可以使用`better_errors`或`byebug`等调试工具,配合查询日志,更快地找到问题所在。 总之,`Ruby-marginalia`是提升ActiveRecord应用开发效率和可维护性的强大工具,通过在SQL查询中添加注释,它提供了...

    Ruby-attache一个文件上传方式

    7. **自定义处理**:开发者可以通过编写回调函数来对上传的文件进行自定义处理,比如缩略图生成、文件转换等。 8. **错误处理**:Attache具有良好的错误处理机制,当文件上传过程中出现问题时,它能返回清晰的错误...

    Ruby-Reform能够给你一个Form对象模型包含验证和嵌套设置

    在传统的Rails应用中,表单处理通常涉及到大量的控制器代码,这不仅让代码变得杂乱,还增加了出错的可能性。Reform引入了Form对象的概念,它是一个单独的类,负责处理表单的验证规则、映射以及与模型之间的交互。...

    图书管理系统报告.pdf

    errors.add(:price, '至少应为0.01') if price.nil? || price end end ``` 这里我们添加了多项验证规则: - `validates_presence_of`:确保作者、标题、描述和图片URL不能为空。 - `validates_numericality_of`...

    强制执行密码强度要求,例如长度和随机性_Ruby_.zip

    如果是在Rails框架下工作,可以利用ActiveRecord的验证功能,比如`validates_length_of`、`validates_complexity_of`等。例如: ```ruby class User validates :password, presence: true, length: { minimum: ...

    验证_锻炼

    2. **自定义验证**:除了预定义的验证外,开发者还可以创建自定义验证方法,通过添加`validate`或`validate_on_create`等回调来执行特定的验证逻辑。 3. **回调(Callbacks)**:Ruby on Rails中的回调机制允许在...

    初学CAKEPHP 基础教程

    首先,CAKEPHP借鉴了Ruby on Rails的优点,比如DRY(Don't Repeat Yourself)原则,使得开发者能够快速地构建Web应用程序。它的官方文档和社区资源丰富,官方网站www.cakephp.org是获取资料和最新信息的好去处。 在...

    Struts2.0框架技术详解

    - **Ruby on Rails**:基于Ruby语言的框架,以其优雅简洁的语法和约定优于配置的设计理念著称。 #### 二、Struts2框架技术概述 **2.1 Struts1和Struts2的对比** Struts1与Struts2的主要区别在于: - **请求处理...

    hashie-model:哈希 + ActiveModel 3.x

    7. **扩展方法**:由于哈希模型本质上还是一个哈希,所以可以利用哈希的所有方法,如`fetch`、`merge`等,同时也可以自定义方法以扩展功能。 总结起来,哈希模型与ActiveModel 3.x的结合为Ruby开发带来了极大的便利...

    maru_blog_post_code:关于使用 maru 在 Elixir 中实现类似 Rest 的 Api 的博客文章的代码

    Maru是一款轻量级且强大的Web开发库,它提供了类似于Ruby on Rails的路由和参数处理功能,但更加简洁和灵活。 首先,让我们理解什么是Maru。Maru是由Elixir社区开发的一个HTTP服务器框架,它允许开发者以模块化的...

Global site tag (gtag.js) - Google Analytics