`
up2u0609
  • 浏览: 17372 次
社区版块
存档分类
最新评论

在rails3真正到来之前,写一个小东西,yy一下在非ar类里调用validation

阅读更多
实际是在工作过程中假公济私的一个即兴滥涂。
在2.3.5里通过了,其他版本就不知道了。
module StubActiveRecord
  class Base
    def save
      return valid?
    end
    def save!;end
    def new_record?;false;end
    def update_attribute;end
    def self.human_name;"#{self.name.underscore}";end
    def self.human_attribute_name(col)
      "#{self.name.underscore}.#{col}"
    end
    def self.self_and_descendants_from_active_record;[self];end
  #stub methods above
    include ActiveRecord::Validations
    def initialize(params={})
      @errors = ActiveRecord::Errors.new(self)
    end
  end
end

require 'stub_active_record/base'
class UserRemote < StubActiveRecord::Base
  NECESSARY_ATTR = [:name]
  attr_accessor *NECESSARY_ATTR
  validates_presence_of *NECESSARY_ATTR
  validate :validate_via_api
  def initialize(params={})
    super
    NECESSARY_ATTR.each do|attr|
      instance_variable_set(:"@#{attr}", params[attr])
    end
  end
protected
  def validate_via_api
    # add other errors here.
  end
end

class UsersController < ApplicationController
  def new 
    @user = UserRemote.new
  end
  def create
    @user = UserRemote.new(params[:user_remote])
    if @user.save
      #blablabla
    else
      render :action => 'new'
    end
  end
end

<% form_for @user do |form| %>  
 <%= form.error_messages %>
 <%= form.text_field :name %>
<% end %>
分享到:
评论

相关推荐

    Rails3常用命令行命令

    Rails3 是 Ruby on Rails 框架的一个版本,它提供了一系列强大的命令行工具,使得开发者可以快速地构建和管理Web应用。在本文中,我们将深入探讨Rails3中的常用命令,帮助你更高效地进行开发工作。 首先,新建一个...

    ruby on rails 3 tutorial.pdf

    《Ruby on Rails 3 Tutorial》是一本专门为初学者设计的指南,旨在帮助读者快速掌握Ruby on Rails这一强大的Web开发框架。Ruby on Rails(简称Rails)是基于Ruby语言的一个开源框架,它采用MVC(Model-View-...

    centOS Rails3环境搭建

    ### CentOS环境下Rails 3开发环境搭建详解 #### 一、准备工作与环境配置 ...通过以上步骤,您可以在CentOS系统上成功搭建一个完整的Rails 3开发环境。这对于初学者和专业开发者来说都是非常实用的知识点。

    Rails3的ActiveRecord 查询API.doc

    这意味着你可以在一个查询上连续调用这些方法,创建一个查询“关系”,例如: ```ruby new_users = User.order('users.id DESC').limit(20).includes(:items) ``` 这样的链式调用允许你在查询的不同阶段添加或修改...

    Rails项目源代码

    这个“Rails项目源代码”是一个使用Rails构建的图片分享网站的完整源代码,它揭示了如何利用Rails的强大功能来创建一个允许用户上传、分享和浏览图片的应用。 1. **Rails框架基础**: Rails的核心理念是DRY(Don't...

    使用Aptana+Rails开发Rails Web应用(中文)

    例如,要在Rails应用中创建一个新的资源,如博客文章,你需要在models目录下创建一个名为`post.rb`的文件,定义Post类,并设置属性如标题和内容。在controllers目录下创建`posts_controller.rb`,定义控制器方法,如...

    Rails 3 in Action

    《Rails 3 in Action》是2011年由Ryan Bigg撰写的一本关于Ruby on Rails框架的权威指南,专门针对当时最新的Rails 3.1版本进行了深入解析。这本书旨在帮助开发者充分利用Rails 3.1的强大功能,提升Web应用开发的效率...

    关于rails 3.1 cucumber-rails 1.2.0

    Rails 3.1 和 Cucumber-Rails 1.2.0 是两个在Web开发领域非常重要的工具,尤其对于Ruby on Rails框架的测试和自动化流程。本文将深入探讨这两个组件,以及它们如何协同工作来增强软件开发的效率和质量。 首先,...

    rails版本区别

    标题与描述概述的知识点主要集中在Rails 2与Rails 3之间的关键差异,这些差异涉及到脚本命令、配置文件以及路由的处理方式。以下是对这些知识点的详细解释与扩展: ### 脚本命令的变化 在Rails 2中,开发者通过一...

    jquery-validation-rails, 对 Rails 资产管道的jQuery验证.zip

    jquery-validation-rails, 对 Rails 资产管道的jQuery验证 :: 验证:: rails针对 Rails 资产管道的...安装这里 gem将以下行添加到项目的Gemfile 中:gem 'jquery-validation-rails'在你的终端中运行以下命令:cd ~/pa

    rails3-railsconf2010

    标题与描述均提到了"rails3-railsconf2010",这表明内容主要聚焦于Rails 3在2010年的RailsConf会议上的关键更新与特性。Rails(Ruby on Rails)是一种用Ruby语言编写的开源全栈web应用框架,以模型-视图-控制器(MVC...

    Rails 101 入门电子书

    - 测试安装: 创建一个简单的Rails应用来验证是否成功安装。 #### 五、练习作业0-Hello World - **目标**: - 学习如何创建第一个Rails应用程序。 - **过程**: - 创建新项目。 - 设置数据库配置。 - 创建控制器...

    Rails

    标题 "Rails" 指的是 Ruby on Rails,一个开源的Web应用程序框架,它基于Ruby编程语言,遵循MVC(模型-视图-控制器)架构模式。Rails由David Heinemeier Hansson在2004年创建,其设计理念是强调代码的简洁性、DRY...

    Ruby Rails 3 Linda

    Ruby on Rails,简称Rails,是由David Heinemeier Hansson基于Ruby语言开发的一个开源Web应用程序框架。Rails遵循MVC(模型-视图-控制器)架构模式,致力于“约定优于配置”和“Don't Repeat Yourself”(DRY)的...

    Rails101_by_rails4.0

    随着Rails版本的更新迭代,此书聚焦于一个特定的版本,帮助开发者掌握在Rails 4.0环境下开发应用所需的关键技能。 书中介绍了Ruby on Rails安装的最佳实践,以及如何通过Git、编辑器和Linux命令行等前置技能的学习...

    Ruby-GoOnRails使用Rails生成器来生成一个Golang应用

    `GoOnRails`是专门为Rails开发者设计的一个生成器,它允许在Rails应用中集成Go代码,创建Go API服务。这个工具简化了在Rails项目中使用Go进行后端处理的流程,使开发者可以利用Go的性能优势处理高并发请求,同时保留...

    Ruby on Rails Guides v2 - Ruby on Rails 4.2.5

    - **步骤**:通过命令行使用`rails new project_name`来初始化一个新的Rails项目。 - **结构**:新项目将包含默认的目录结构,如`app`、`config`、`db`等,分别用于存放应用程序代码、配置文件、数据库迁移脚本等。 ...

    中文版rails教程

    Rails,全称为Ruby on Rails,是一个基于Ruby编程语言的开源Web应用程序框架,遵循MVC(模型-视图-控制器)架构模式。Rails以其“约定优于配置”(Convention over Configuration)和“Don't Repeat Yourself”(DRY...

Global site tag (gtag.js) - Google Analytics