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

activerecord的save和save!方法

阅读更多
ruby代码风格自由化的程度往往会让java程序员感到疑惑,比如字符串的'gsub'方法,还有一个同胞方法名叫'gsub!',二者区别在于前者只返回sub的结果而不改变执行该方法的字符串本身,后者则同时改变了字符串自身。

如在java中有字符串str,要改变自身的话需要
str=str.substring(x,x)


而ruby中只需
str.gsub!(x,x)


ruby在语言上取巧的地方可见一斑,代码的简洁程度和表达思想上得到了一种提升。

再来引申到activerecord的save和save!方法,二者区别何在呢?save方法如果保存失败的时候,仅返回false结果的,不会抛出异常,属于默默无闻埋头苦干类型;而save!方法则不同,保存失败会抛出异常,save!方法在事务处理当中调用比较合适。
分享到:
评论

相关推荐

    activerecord-rescue_from_duplicate:Ruby gem从MySQL,PostgreSQL和Sqlite重复错误中解救出来

    ActiveRecord-RescueFromDuplicate 当尝试插入未通过唯一性验证的记录时,此gem将挽救SQL错误。 它补充:validates_uniqueness_of ,并将添加... , save! 或其他! 方法。 用法 有验证 在所有常规唯一性验证中都添加了

    sneaky-save:允许更新复杂的对象而无需触发验证或回调

    偷偷摸摸的保存 ActiveRecord扩展名。 允许保存记录而无需调用回调和验证。 正在安装 $ gem install sneaky-save 或放入您的gemfile以获取最新版本: ... sneaky_save! 运行规格 克隆仓库 运行bundle

    ActiveRecord生命周期阅读v-000

    目标了解AR生命周期方法的概念使用before_save , before_create和before_validation 了解何时使用before_validation与before_save回呼现在,我们将ActiveRecord集成到Rails中,我们应该注意,只要模型中发生某些...

    lean-activerecord

    此类将实现以下“ActiveRecord::Base”方法: '::all':返回数据库中所有记录的数组'::find': 按主键查找单条记录'#insert':在表中插入一个新行'#update':更新行'#save':一种方便的方法,可以适当地调用 'insert...

    active-storage:用于查询 localStorage 的类似 ActiveRecord 的接口

    您现在可以访问您最喜欢的 ActiveRecord 方法,由 localStorage 提供支持!.new var p = Post . new ( { name : "Jesse" } ) ;.create var p = Post . create ( { name : "Jesse" } ) ;#save p . save ( ) ;.find ...

    activerecord-lifecycle-reading-onl01-seng-ft-050420

    使用before_save , before_create和before_validation 了解何时使用before_validation与before_save 回呼 现在,我们将ActiveRecord集成到Rails中,我们应该注意,只要模型中发生某些事情,就可以使一些代码运行:...

    activerecord-lifecycle-reading-online-web-sp-000

    使用before_save , before_create和before_validation 了解何时使用before_validation与before_save 回呼 现在,我们将ActiveRecord集成到Rails中,我们应该注意,只要模型中发生某些事情,就可以使一些代码运行:...

    url_attributes:ActiveRecord 的快速简单的 URL 验证

    用法将一个字符串列添加到您的 ActiveRecord 模型中,该列将包含一个 url,例如link ,然后在您的模型中调用类方法url_attribute ,如下所示: class MyAwesomeModel < ActiveRecord::Base url_attribute :...

    arca:Arca是ActiveRecord的回调分析器,非常适合使自己摆脱回调地狱

    :unless和:on ) 每个回调类型( :commit , :create , :destroy , :find , :initialize , :rollback , :save , :touch , :update , :validation )存在多少种可能的排列Arca库有两个主要组件,收集器和报告...

    回形针:ActiveRecord的简单文件附件管理

    回形针不推荐使用。 对于新项目,我们建议使用Rails自己的 。... 这意味着它们不会保存到磁盘上的最终位置,也不会在设置为nil时被删除,直到调用ActiveRecord :: Base#save为止。 如果需要,它根据大小和状态管

    ThinkPHP v5.0.24 完整版.zip

    ThinkPHP借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,采用单一入口模式等,融合了Struts的 Action思想和JSP的TagLib(标签库)、RoR的ORM映射和ActiveRecord模式,封装了CURD和一些常用操作,...

    sinatra-json:使用 sinatra 和 Ember 客户端的简单 RESTJSON API

    自述文件 这是一个用于演示目的的简单 Web 服务。 它是公司信息数据库的接口,由 REST API 和客户端两部分组成。... 我们使用save! 保存数据时带有感叹号的方法,以确保在出现问题时引发异常。 所有异

    intaglio:一个很棒的,定义一次,随处使用的 ORM

    安装与 NPM 一起使用: npm install --save intaglio 与 Bower 一起使用bower install --save intaglio快速入门指南要使用 Node 和 MySQL 快速启动并运行,以下是实例化 ORM 的方法: var Intaglio = require ( '...

    ThinkPHP (PHP开源框架)v5.0.24 核心版

    ThinkPHP (PHP开源框架)v5.0.24 核心版 更新日志改进关联的save方法改进模型数据验证Collection增加values方法改进unique验证方法改进Request类的method方法ThinkPHP简介ThinkPHP核心版本仅包含核心必须类库和文件...

    laravel-sluggable:为雄辩的模型创建子弹的自觉性软件包

    // outputs "activerecord-is-awesome" 使用Laravels Str::slug方法生成子段,从而将空格转换为“-”。 Spatie是一家位于比利时安特卫普的网页设计机构。 您可以找到我们所有开源项目的概述。支持

    js-tictactoe-rails-api-backend-v-000

    带有Rails API的jQuery Tic-Tac-... 了解有关ActiveRecord::Base#serialize方法的信息,该方法用于序列化数组,哈希和其他不可映射的对象。 单页应用程序的目录结构 由于这可能是您构建的第一个单页应用程序(SPA),因

    js-tictactoe-rails-api-backend-online-web-pt-021119

    带有Rails API的jQuery Tic-Tac-Toe ... 了解有关ActiveRecord::Base#serialize方法的信息,该方法用于序列化数组,哈希和其他不可映射的对象。单页应用程序的目录结构由于这可能是您构建的第一个单页应用程序(SPA),

    rails4patterns-codeschool

    ActiveRecord :: Base before_save :set_pretty_url protected def set_pretty_url self . pretty_url = self . name . parameterize endend 重构这个控制器: class UsersController < ApplicationController ...

    active-record-advanced

    ActiveRecord 高级样板 这是 ActiveRecord 的极简实现,具有多种模型( Doctor 、 Patient 、 Intern 、 Consultation ),用于为 @LeWagon 学生实时编码演示,这是一部分 克隆回购 ...irb > doctor.save

    stone-skin:同构IndexedDb和内存中的DB包装器

    $ npm install stone-skin --save 受到启发。 并基于瘦索引的Db包装器 特征 ActiveRecord之类的API 通用indexdDb或内存中对象 承诺 可在共享工作者和服务工作者中运行 (可选)通过jsonschema(tv4)进行验证 可...

Global site tag (gtag.js) - Google Analytics