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">

  • 相关阅读:
    poj 1584
    poj 1113 & poj 2187
    pku 1321 棋盘问题
    poj 1408
    pku 2251 Dungeon Master
    sdut oj 2218 Give Me an E
    Android工程 单元测试
    Android Timer编写方式
    去除工程的.svn隐藏文件夹
    Android 绑定远程服务出现 Not Allowed to bind service
  • 原文地址:https://www.cnblogs.com/lizhenjiang/p/7111458.html
Copyright © 2011-2022 走看看