Rails 控制台访问模型

Rails 控制台访问模型


rails console 简写为 rails c

rails dbconsole 或者 rails db 直接连接数据库

新增记录:

模型类.new -> 模型实例变量.save
2.1.5 :001 > p = Post.new(:title => "My First Post", :context=>"this is my first post")
#此处 Post.new 只在内存中创建一个对象
 => #<Post id: nil, title: "My First Post", context: "this is my first post", created_at: nil, updated_at: nil>
2.1.5 :002 > p.save()
#此处 p.save 将内存中的对象进行持久化存储
   (0.5ms)  begin transaction
  SQL (0.7ms)  INSERT INTO "posts" ("context", "created_at", "title", "updated_at") VALUES (?, ?, ?, ?)  [["context", "this is my first post"], ["created_at", "2014-12-03 11:44:50.954572"], ["title", "My First Post"], ["updated_at", "2014-12-03 11:44:50.954572"]]
   (23.0ms)  commit transaction
 => true

模型类.create

2.1.5 :003 > Post.create(:title => "create test", :context=>"test of create")
   (0.2ms)  begin transaction
  SQL (0.4ms)  INSERT INTO "posts" ("context", "created_at", "title", "updated_at") VALUES (?, ?, ?, ?)  [["context", "test of create"], ["created_at", "2014-12-03 11:48:08.779270"], ["title", "create test"], ["updated_at", "2014-12-03 11:48:08.779270"]]
   (21.9ms)  commit transaction
 => #<Post id: 2, title: "create test", context: "test of create", created_at: "2014-12-03 11:48:08", updated_at: "2014-12-03 11:48:08">

查询记录

模型类.all
2.1.5 :004 > posts = Post.all
  Post Load (0.6ms)  SELECT "posts".* FROM "posts"
 => #<ActiveRecord::Relation [#<Post id: 1, title: "My First Post", context: "this is my first post", created_at: "2014-12-03 11:44:50", updated_at: "2014-12-03 11:44:50">, #<Post id: 2, title: "create test", context: "test of create", created_at: "2014-12-03 11:48:08", updated_at: "2014-12-03 11:48:08">]>
模型类.find(id)
2.1.5 :005 > post = Post.find(2)
  Post Load (0.6ms)  SELECT  "posts".* FROM "posts"  WHERE "posts"."id" = ? LIMIT 1  [["id", 2]]
 => #<Post id: 2, title: "create test", context: "test of create", created_at: "2014-12-03 11:48:08", updated_at: "2014-12-03 11:48:08">
可以用[实例变量].[成员变量]的方式访问数据,如下:
2.1.5 :006 > post.title
 => "create test"
2.1.5 :007 > post.context
 => "test of create"

更新记录

    #模型实例变量.update -> 模型实例变量.save()
    2.1.5 :008 > post.title = "test update"
     => "test update"
    2.1.5 :009 > post.save()
       (0.4ms)  begin transaction
      SQL (1.2ms)  UPDATE "posts" SET "title" = ?, "updated_at" = ? WHERE "posts"."id" = 2  [["title", "test update"], ["updated_at", "2014-12-03 11:57:08.964494"]]
       (10.0ms)  commit transaction
     => true
    模型实例变量.update_attribute(field,value)
    2.1.5 :010 > post.update_attribute(:context,"test operation of update_attribute")
       (0.4ms)  begin transaction
      SQL (1.4ms)  UPDATE "posts" SET "context" = ?, "updated_at" = ? WHERE "posts"."id" = 2  [["context", "test operation of update_attribute"], ["updated_at", "2014-12-03 12:01:12.051869"]]
       (32.3ms)  commit transaction
     => true
    模型实例变量.update_attributes(hash)
    2.1.5 :013 > post.update_attributes(:title=>"test update_attribute 2", :context =>"content for test of update_attribute 2")
       (1.4ms)  begin transaction
      SQL (1.2ms)  UPDATE "posts" SET "context" = ?, "title" = ?, "updated_at" = ? WHERE "posts"."id" = 2  [["context", "content for test of update_attribute 2"], ["title", "test update_attribute 2"], ["updated_at", "2014-12-03 12:05:16.878764"]]
       (26.1ms)  commit transaction
     => true

删除记录

#模型实例变量.destroy
2.1.5 :016 > post.destroy
   (0.3ms)  begin transaction
  SQL (1.3ms)  DELETE FROM "posts" WHERE "posts"."id" = ?  [["id", 2]]
   (23.6ms)  commit transaction
 => #<Post id: 2, title: "test update_attribute 2", context: "content for test of update_attribute 2", created_at: "2014-12-03 11:48:08", updated_at: "2014-12-03 12:05:16">

#删除所有记录
2.1.5 :016 > Post.destroy_all
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值