`
hideto
  • 浏览: 2677037 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

每天一剂Rails良药之Validating Non-ActiveRecord Objects

    博客分类:
  • Ruby
阅读更多
对于非ActiveRecord对象的Validation,我们不能简单的include ActiveRecord::Validations
我们需要写一个module,如ValidatingNonARObjects/lib/validateable.rb
module Validateable
  [:save, :save!, :update_attribute].each{|attr| define_method(attr){}}
  def method_missing(symbol, *params)
    if(symbol.to_s =~ /(.*)_before_type_cast$/)
      send($1)
    end
  end
  def self.append_features(base)
    super
    base.send(:include, ActiveRecord::Validations)
  end
end

这样我们就可以对非ActiveRecord对象中使用validations了,如:
class Person
  include Validateable
  attr_accessor :age
  validates_numericality_of :age
end
分享到:
评论
2 楼 axgle 2007-07-05  
另一种方式:
http://rubyoo.com/?p=295
1 楼 axgle 2007-06-22  
 

相关推荐

    scala-activerecord-specs_2.9.2-0.2.3.zip

    "scala-activerecord-specs_2.9.2-0.2.3.zip" 这个标题表明我们正在处理一个与Scala Activerecord相关的软件包,具体是版本为0.2.3的规格测试部分,适用于Scala 2.9.2。"specs"通常指的是软件的规范或测试套件,意味...

    rails-activerecord-model-rails-lab-v-000

    ActiveRecord模型Rails实验室 目标 手动创建迁移 手动创建模型 建立模型实例方法 建立模型 您可以在spec/models目录中找到此应用程序的测试套件,并使用以下命令运行它们: bundle exec rspec 。 该实验室进行测试以...

    rails-activerecord-models-and-rails-readme-v-000

    Active Record是Rails用来管理应用程序模型方面的内置ORM。 什么是ORM? ORM是一个对象关系映射系统,从本质上讲,这是一个模块,它使您的应用程序能够以方法驱动的结构来管理数据。 这意味着您可以利用方法而不是...

    Web开发敏捷之道-应用Rails进行敏捷Web开发-第三版.rar

    Web开发敏捷之道-应用Rails进行敏捷Web开发-第三版.rarWeb开发敏捷之道-应用Rails进行敏捷Web开发-第三版.rarWeb开发敏捷之道-应用Rails进行敏捷Web开发-第三版.rarWeb开发敏捷之道-应用Rails进行敏捷Web开发-第三版...

    rails-documentation-1-2-1.zip

    标题 "rails-documentation-1-2-1.zip" 暗示这是一份关于 Ruby on Rails 框架的文档,版本为 1.2.1。Ruby 是一种面向对象的编程语言,而 Rails 是一个基于 Ruby 的开源 Web 应用程序框架,遵循 Model-View-...

    rails-documentation-2-0-2

    rails-documentation-2-0-2

    Java敏捷持久层-ROR-ActiveRecord持久层框架的Java实现

    ActiveRecord是一种对象关系映射(ORM)模式,起源于Ruby on Rails框架,它的核心思想是将数据库表与面向对象的类绑定,每个表对应一个类,表中的记录对应类的实例。这样,开发者可以通过操作对象的方式来间接操作...

    rails-chm-2-0-2.rar

    `rails-documentation-2-0-2.chm` 文件详细涵盖了这些概念,包含了关于Rails 2.0.2的API参考、教程和指南。通过仔细阅读和实践,开发者能够深入理解Rails的工作原理,并有效地开发出高效、可维护的Web应用。

    Ruby-ActiveRecord插件允许你隐藏和恢复记录没有真正删除它们

    标题中的"Ruby-ActiveRecord插件允许你隐藏和恢复记录没有真正删除它们"正是指的`ActsAsParanoid`插件的核心特性。当一条记录被“删除”时,它不会立即从数据库中物理删除,而是通过添加一个时间戳字段(例如`...

    rails-beginner-s-guide

    rails-beginner-s-guide是Rails 指导手册,帮组学习了解rails开发

    rails-documentation-1-2-0-rc1.chm

    rails-documentation-1-2-0-rc1.chm

    rails-activerecord-models-and-rails-readme-online-web-ft-120919

    活动记录模型和导轨活动记录的作用Active Record是Rails用来管理应用程序模型方面的内置ORM。 什么是ORM? ORM是一个对象关系映射系统,从本质上讲,这是一个模块,它使您的应用程序能够以方法驱动的结构来管理数据...

    rails-activerecord-models-and-rails-readme-online-web-sp-000

    活动记录模型和导轨活动记录的作用Active Record是Rails用来管理应用程序模型方面的内置ORM。什么是ORM? ORM是一个对象关系映射系统,从本质上讲,这是一个模块,它使您的应用程序能够以方法驱动的结构来管理数据。...

    Ruby-ActiveRecord的BiTemporal数据模型

    在这个特定的上下文中,我们关注的是"Ruby-ActiveRecord的BiTemporal数据模型"。BiTemporal数据模型是一种高级的数据管理技术,用于处理数据的历史记录和有效性,它能够确保数据在时间和逻辑上都是准确的。 ...

    scala-activerecord:Scala的类似于ActiveRecord的ORM库

    scala-activerecord是Scala的ORM库。 该库的灵感来自Ruby on Rails的ActiveRecord。 它是按照CoC(配置公约),DRY(请勿重复自己)的原则设计的。 最小的例子 样本片段: 模型实施: package models import ...

    rails-yelp-mvp-源码.rar

    【标题】"rails-yelp-mvp-源码" 指的是一个基于Rails框架开发的类似于Yelp(美国知名餐饮评论网站)的最小可行产品(Minimum Viable Product, MVP)的源代码。Rails是Ruby编程语言的一个流行Web开发框架,以其“约定...

    workflow-activerecord:工作流库的 ActiveRecordRails 集成

    gem 'workflow-activerecord', '~> 4.1' 这还将自动包括核心“工作流” gem的最新兼容版本。 但您也可以选择特定版本: gem 'workflow', '~> 2.0' gem 'workflow-activerecord', '~> 4.1' 还请查看! 有关工作流...

    rails-react-components-源码.rar

    本文将深入探讨"rails-react-components-源码.rar"中的关键知识点,帮助开发者理解如何在Rails应用中集成React组件。 1. **React组件化开发** React的核心概念是组件,它允许我们将UI拆分为独立、可重用的部分。在...

    Web开发敏捷之道-应用Rails进行敏捷Web开发-第三版

    《Web开发敏捷之道-应用Rails进行敏捷Web开发-第三版》是针对现代Web开发的一本经典教程,专注于使用Ruby on Rails框架实现敏捷开发方法。这本书的中文版为中国的开发者提供了便利,使他们能够更好地理解和应用这个...

    flexigrid+rails 新手代码-。-

    Flexigrid 是一个 JavaScript 库,常用于创建可扩展、灵活的表格,而 Ruby on Rails 是一个流行的开源 Web 应用程序框架,遵循 MVC(模型-视图-控制器)架构模式。下面将详细解释这两个技术以及它们在实际应用中的...

Global site tag (gtag.js) - Google Analytics