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

rails的create与create!和save与save!的区别

阅读更多

 

很无语弄了一下午的rails console 

本想用console插入一些records

结果一直不能,总是出现rollback提示

以为是数据库 mysql的问题,又查看了mysql自动提交,事务隔离界别等

但是一直还是没解决问题..

最后 终于知道了.. 怎么知道的过程就不记得了

 

原来是 自己写的model有好多validates..从来没遇到过这种情况以至于一直rollback却不知道自己插入数据并不符合自己的条件

 

一直使用的是 save方法 和 create方法

但是文档上写着:

By default, save always run validations. If any of them fail the action is cancelled and save returns false. However, if you supply :validate => false, validations are bypassed altogether. 

 

With save! validations always run. If any of them fail ActiveRecord::RecordInvalid gets raised

 

而且明确说明是需要validates的

同理 create和create!也是

 

 

0
0
分享到:
评论

相关推荐

    rails-create-action-readme-v-000

    save 使用此语法,您可以手动创建带有title和description属性的新过Post记录。 在控制台中运行save方法之后,您将看到类似于以下内容的输出: (0.1ms) begin transactionSQL (0.3ms) INSERT INTO " posts " ( " ...

    浅谈Rails 4 中Strong Parameters机制

    要弄明白Rails 4 中Strong Parameters机制,首先我们要看看Rails3中的Parameters 在 Rails3 中创建或更新 Active Record 对象时,会有 Mass Assignment 安全问题。所以 Model 中需要列一个白名单,声明哪些属性可以...

    Rails扩展框架Trailblazer.zip

    Trailblazer 是基于 Rails 的一个瘦的封装层,加强了代码的封装使用,更直观的代码结构和面向对象架构。是一种概念驱动的架构模型,项目目录如下: app├── concepts│ ├── comment│ │ ├── cell.rb│ ...

    rails_admin_baidu_map:支持 postgresql 和 mongodb 数据库

    Rails Admin 百度地图支持 Postgis 和 Mongoid 这个... :type => Array # [lat,lng] index ( { location : '2d' } , { min : - 180 , max : 180 } ) # create an special index before_save :fix_location , if : :lo

    jsonapi_parameters:使用JSON:API输入的Rails-way

    JsonApi ::参数 简单的兼容参数转换器。 用法 安装 将此行添加到您的应用程序的Gemfile中: gem 'jsonapi_parameters' 然后执行: ... save ... else head 500 end end private def create_params

    rails4patterns-codeschool

    rails4patterns-codeschool级别 1:模型胖控制器不好很难明白业务逻辑未封装更多代码冲突新功能难以实现避免从回调中调用其他域对象回调是在对象生命周期的特定时刻被调用的方法。 在回调中引用其他模型: 引入紧...

    unique_validation_inspector:一项Rake任务,可帮助您在没有适当数据库索引的Rails模型中找到唯一的验证

    如果启用了唯一性验证,Rails将在执行Model.create , Model.save , Model.update ...操作之前查找现有记录。 如果找到记录,则验证失败,并且事务将回滚,否则记录将被保存。 例如,您具有facebook_id字段的用户...

    action-cable-node:从Rails 5提取并打包为Node模块的Action Cable

    从Rails 5中提取的动作电缆并打包为Node模块 安装 npm install action-cable-node --save 用法 它具有与ActionCable相同的所有方法,用法完全相同。 import ActionCable from 'action-cable-node' const App = {} ...

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

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

    ActiveRecord生命周期阅读v-000

    目标了解AR生命周期方法的概念使用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中,我们应该注意,只要模型中发生某些事情,就可以使一些代码运行:...

    are_you_sure:Rails 应用程序的确认

    你确定吗 此插件在创建或更新操作之前插入确认页面。 因此,没有必要添加新的路由... find ( params [ :id ] )enddef create @todo = confirm_for Todo . new ( todo_params ) if @todo . save_if_confirmed redir

    tech-tv

    捆绑exec rails db:create 捆绑exec rails db:migrate 工头开始-f Procifile.dev 获取最新的事件脚本 bundle exec rails batch:save_event 版本号 语言/框架 版本 Ruby 2.7.2 栏杆 6.0.3.4 节点 14.15.1 ...

    dejavu:重定向后记住您的对象

    德雅武 Dejavu 是一个... 典型的 Rails 控制器create操作如下所示: # POST /products # POST /products.json def create @product = Product.new(params[:product]) respond_to do |format| if @product.save format....

    custom_counter_cache:支持条件和多种模型的自定义counter_cache功能

    自定义计数器缓存 这是在Rails中创建可用于多个模型的自定义计数器缓存的简单方法。 安装 ... 这将定义after_create,after_update和after_destroy回调。 可以提供:if选项来限制触发这些回调的时间。

    LeanCloudSDK封装LeanMotion.zip

    用更Ruby的写法来操作LeanCloud的数据,类Rails的ActiveRecord,增删查改。 安装说明 1、安装gem gem install lean_motion 2、创建项目 lean_motion create app-name 3、修改 app_delegate.rb设置LeanCloud的App...

Global site tag (gtag.js) - Google Analytics