zoukankan      html  css  js  c++  java
  • rails 多态

    rails g model employee name:string

     

    rails g model product name:string

     

    rails g model picture name:string imageable_id:integer  imageable_type:string

     

     

     

    class Employee < ApplicationRecord
      has_many :pictures, :as => :imageable
    end

    class Product < ApplicationRecord
      has_many :pictures, :as => :imageable
    end

    class Picture < ApplicationRecord
      belongs_to :imageable, :polymorphic => true
    end

    irb(main):001:0> product = Product.create name: "iphone"

       (0.1ms)  begin transaction

      SQL (1.1ms)  INSERT INTO "products" ("name", "created_at", "updated_at") VALUES (?, ?, ?)  [["name", "iphone"], ["created_at", "2017-07-03 07:26:45.164785"], ["updated_at", "2017-07-03 07:26:45.164785"]]

       (0.7ms)  commit transaction

    => #<Product id: 1, name: "iphone", created_at: "2017-07-03 07:26:45", updated_at: "2017-07-03 07:26:45">

    irb(main):002:0> picture = product.pictures.create name: 'pic1'

       (0.1ms)  begin transaction

      Product Load (0.2ms)  SELECT  "products".* FROM "products" WHERE "products"."id" = ? LIMIT ?  [["id", 1], ["LIMIT", 1]]

      SQL (0.7ms)  INSERT INTO "pictures" ("name", "imageable_id", "imageable_type", "created_at", "updated_at") VALUES (?, ?, ?, ?, ?)  [["name", "pic1"], ["imageable_id", 1], ["imageable_type", "Product"], ["created_at", "2017-07-03 07:27:47.046831"], ["updated_at", "2017-07-03 07:27:47.046831"]]

       (0.7ms)  commit transaction

    => #<Picture id: 1, name: "pic1", imageable_id: 1, imageable_type: "Product", created_at: "2017-07-03 07:27:47", updated_at: "2017-07-03 07:27:47">

    irb(main):003:0> picture

    => #<Picture id: 1, name: "pic1", imageable_id: 1, imageable_type: "Product", created_at: "2017-07-03 07:27:47", updated_at: "2017-07-03 07:27:47">

  • 相关阅读:
    Android 横屏启动activity,点击屏幕的单击、双击
    实现Android简单动画旋转案例
    当时遇到的主要难点在于TextView的内容不会刷新改变值,今天终于通过Timer和Handler实现了,分享给大家
    如何在Android当中显示网络图片
    Android的MediaRecorder架构介绍
    理解Android系统的进程间通信原理RPC机制
    Android开发WeatherForecast程序
    Android 如何导入已有的外部数据库
    百度地图API 源码
    Android TelephonyManager类
  • 原文地址:https://www.cnblogs.com/lizhenjiang/p/7111458.html
Copyright © 2011-2022 走看看