`
zhangym124
  • 浏览: 344291 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

rails中单独更新某一属性,不走model层的validate

阅读更多

在做Rspec测试时,有一用例如下

 

  describe "validate update the pool name" do

     it "rejects duplicated names" do

 

       pool1 = machine_pool

       MachinePool.create!(attrs)

       pool1.update_attributes(attrs).should == false

       #如果用pool1.update_attribute(:name,"交易中心机器池").should == false则报错,猜测:只更新某一属性时,不走model层的验证

     end

  end

 

此用例的目的是测试某一张表的某一字段在更新时的唯一性,通过这一测试用例,发现一个从来没有意识到的问题。

当使用XXX.update_attributes时,会走model的验证功能,然而使用XXX.update_attribute时,却不走验证功能。

不知到我这么理解,有没有问题。

0
0
分享到:
评论
2 楼 zhangym124 2012-04-19  
attribute(name, value)
t284299773 写道
update_attribute(name, value)

Updates a single attribute and saves the record without going through the normal validation procedure. This is especially useful for boolean flags on existing records. The regular update_attribute method in Base is replaced with this when the validations module is mixed in, which it is by default.

update_attributes(attributes)

Updates all the attributes from the passed-in Hash and saves the record. If the object is invalid, the saving will fail and false will be returned.

确实如你所说


谢谢你细心的答案。
1 楼 t284299773 2012-04-19  
update_attribute(name, value)

Updates a single attribute and saves the record without going through the normal validation procedure. This is especially useful for boolean flags on existing records. The regular update_attribute method in Base is replaced with this when the validations module is mixed in, which it is by default.

update_attributes(attributes)

Updates all the attributes from the passed-in Hash and saves the record. If the object is invalid, the saving will fail and false will be returned.

确实如你所说

相关推荐

    Ruby on Rails中文指南

    Ruby on Rails,简称Rails,是一款基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-Controller)架构模式,旨在提升开发效率和代码的可读性。Rails以其“约定优于配置”的设计理念,以及“DRY(Don't Repeat ...

    Rails 中mongrel的安装

    Rails是Ruby on Rails框架的简称,它是一种基于Ruby语言的开源Web开发框架,以其MVC(Model-View-Controller)架构而闻名,旨在简化Web应用的开发过程。在早期的Rails版本中,Mongrel是一个常用的HTTP服务器,用于...

    RailsGuides中那个blog程序源码

    在这个"blog"程序中,可能会有一个`Post`模型来代表博客文章,包含了如标题、内容、作者等属性,并提供相关的操作,如创建、更新、删除文章。 **视图(View)** 是用户看到和与之交互的部分。在blog应用中,视图...

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

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

    rails2.3.2

    描述中的 "ruby and rails 的框架rails-2.3.3.zip" 提到的是 Rails 的另一个版本 2.3.3,尽管与标题中的版本号不完全匹配,但我们可以推断这是关于 Rails 2.3.x 系列的讨论。这个压缩包很可能包含了 Rails 框架的源...

    Rails3常用命令行命令

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

    Rails项目源代码

    Ruby on Rails,通常简称为Rails,是一个基于Ruby编程语言的开源Web应用框架,遵循MVC(Model-View-Controller)架构模式。这个“Rails项目源代码”是一个使用Rails构建的图片分享网站的完整源代码,它揭示了如何...

    Rails101_by_rails4.0

    《Rails101_by_rails4.0》是一本专注于Rails 4.0.0版本和Ruby 2.0.0版本的自学教程书籍,它定位于中文读者,旨在成为学习Rails框架的参考教材。Rails(Ruby on Rails)是一个采用Ruby语言编写的开源Web应用框架,它...

    Ruby+for+Rails

    例如,`rails generate model Book title:string author:string`将创建一个`Book`模型,包含`title`和`author`属性。 6. **数据库迁移(Migrations)** Rails使用迁移来管理数据库结构的变化。`rails generate ...

    rails指南 中文版

    Ruby on Rails(简称Rails)是一个基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-Controller)架构模式,强调“约定优于配置”(Conventions over Configuration)和“Don't Repeat Yourself”(DRY,不要...

    Ruby on Rails入门例子

    Ruby on Rails,简称Rails,是一种基于Ruby语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在使Web开发过程更加高效、简洁。本篇将通过一个入门实例,深入探讨Rails的基本概念和核心...

    Rails入门教程一(翻译).pdf

    Rails,全称为Ruby on Rails,是一个基于Ruby语言的开源Web应用程序框架,遵循MVC(Model-View-Controller)架构模式,用于构建数据库驱动的web应用。本教程是针对初学者设计的,旨在帮助他们快速掌握Rails的核心...

    Rails中上传文件保存中文文件名乱码

    在Rails框架中处理文件上传时,经常会遇到一个问题,那就是当用户尝试上传包含中文名称的文件时,文件名可能会出现乱码。这个问题主要是由于字符编码不兼容导致的。Rails默认使用UTF-8编码,但文件系统或者某些外部...

    Rails 101 入门电子书

    《Rails 101 入门电子书》是一本非常适合初学者直接入门的书籍,它由xdite编写并出版于2014年6月10日。本书主要针对的是希望学习Ruby on Rails框架的读者,特别是那些想要从零开始掌握这项技术的新手。 #### 二、...

    Ruby on Rails实例开发

    在Rails中,通过ActiveRecord可以轻松地进行数据操作,如创建、读取、更新和删除(CRUD)记录。 HTML(超文本标记语言)和CSS(层叠样式表)是构建Web页面的基本元素。HTML负责结构化内容,而CSS则用于样式设计。在...

    rails2-sample

    Ruby on Rails是一种基于Ruby语言的开源Web应用框架,遵循MVC(Model-View-Controller)设计模式。它以其优雅的语法、高效的开发速度以及“约定优于配置”的理念而闻名于世,极大地简化了Web应用的开发过程。此外,...

    rails敏捷开发的购物车系统

    在本文中,我们将深入探讨如何使用Rails敏捷开发技术构建一个购物车系统,特别是在参考《rails敏捷开发第四版》中的示例。Rails 3.2.6是本文的基础框架,它是一个强大的Ruby Web应用程序框架,以其MVC(模型-视图-...

    Rails for Zombies

    通过"Rails for Zombies"教程,学习者能够对Ruby on Rails框架中的基本概念、数据结构、数据库操作方法、对象属性的访问方式等有一个全面而深入的理解,并能够运用这些知识点来创建基本的Web应用程序。

    rails中使用javascript日期控件

    这篇博客“rails中使用javascript日期控件”探讨的就是如何在Rails应用中集成JavaScript日期控件,特别是通过一个名为WebCalendar.js的库来实现这一功能。WebCalendar.js是一个轻量级的JavaScript库,用于创建交互式...

Global site tag (gtag.js) - Google Analytics