美文网首页
Rails 无法保存/更新数据(对象)

Rails 无法保存/更新数据(对象)

作者: hjiangwen | 来源:发表于2017-03-15 18:03 被阅读283次

上下文

想更改对象的属性,update,save等方法却不生效。以下在命令行操作:

> id = 6
> v = Video.find(id)
=> #<Video id: 6, title: "宝藏", key: nil>
> v.update(title: "随便打的标题")
   (0.2ms)  BEGIN
   (0.2ms)  ROLLBACK
 => false #这里应该就看出问题了
> v
=> #<Video id: 6, title: "随便打的标题", key: nil>
> v.reload
=> #<Video id: 6, title: "宝藏", key: nil>

解决方法

其实update和save方法会返回是否成功将对象保存到数据库,当返回false时,可以使用your_model.errors将错误打印出来。

=> #<ActiveModel::Errors:0x007fff34fab460 @base=#<Video id: 6, title: "宝藏", key: nil>, @messages={:key=>["can't be blank"]}>

原来我在video模型创建后加了一条NOT NULL约束,导致这个之前创建的video对象现在无法在key为nil的情况下保存。

class Video < ActiveRecord::Base
    validates :key, presence: true
end

也就是说我需要进行以下操作才能保存:

> id = 6
> v = Video.find(id)
=> #<Video id: 6, title: "宝藏", key: nil>
> v.update(title: "随便打的标题", key: "sdfsdsds") #记得更新不能为nil的key属性
(0.2ms)  BEGIN
  SQL (0.5ms)  UPDATE "videos" SET "key" = $2, "updated_at" = $3 WHERE "videos"."id" = $4  [["qiniu_key", "sdfsdsds"], ["updated_at", "2017-03-15 09:45:35.615265"], ["id", 6]]
   (4.6ms)  COMMIT
 => true # 返回true代表将对象保存到数据库

相关文章

  • Rails 无法保存/更新数据(对象)

    上下文 想更改对象的属性,update,save等方法却不生效。以下在命令行操作: 解决方法 其实update和s...

  • iOS持久化存储

    iOS有以下几种数据持久化方式 NSUserDefault (无法保存自定义对象) plist表 (无法保存自定义...

  • repository.save() 无效 无法保存数据

    repository.save() 不起作用,无法保存数据 有一个更新操作是需要先delete user的数据,然...

  • 个人踩坑

    .net Core 2.1 后 Session保存,新页面获取不到值 [关于Adapter无法更新数据](http...

  • 《Rails-Guides》Reading notes four

    回调概述 在 Rails 应用正常运作期间,对象可以被创建、更新或删除。Active Record 为对象的生命周...

  • Hibernate-ORM框架基础

    对象保存在内存中,内存不能永久保存数据,如果要永久保存就需要对象持久化(将对象存储到数据库中).关系型数据库存放关...

  • [2] 归档与序列化

    归档: 保存复杂的对象图表。包括保存对象类型,标识,对象相互间的关系及对象数据。比如:NSCoder 保存遵循 N...

  • 2018-06-09

    小程序知识点整理 Typora 无法实时保存。。。。死了噜 数据绑定 让框架根据映射自动地对视图进行更新。 数据需...

  • railties库阅读笔记四------application.

    在Rails3.0中,Rails::Application对象是一个Rails引擎,但是,Rails::App...

  • Android中对象的序列化

    为什么需要对对象进行序列化 永久的保存对象数据(将对象数据保存到磁盘中) 通过序列化操作将对象数据在网络上进行传输...

网友评论

      本文标题:Rails 无法保存/更新数据(对象)

      本文链接:https://www.haomeiwen.com/subject/bnqrnttx.html