【问题标题】:How to write into different tables when rails model has been inherited?继承rails模型时如何写入不同的表?
【发布时间】:2017-02-23 20:19:16
【问题描述】:

我有以下型号:

class Building < ActiveRecord::Base;end

class Department < Building;end

class Organization < Building;end

当我创建部门和组织并获取所有部门时

2.1.5 :008 > Department.all.count
(0.5ms)  SELECT COUNT(*) FROM "buildings"
=> 2 

我想参与这种情况

2.1.5 :008 > Department.all.count
(0.5ms)  SELECT COUNT(*) FROM "departments"
=> 1 

2.1.5 :008 > Organization.all.count
(0.5ms)  SELECT COUNT(*) FROM "organizations"
=> 1

2.1.5 :008 > Buildings.all.count
(0.5ms)  SELECT COUNT(*) FROM "buildings"
=> 2 

我该怎么做?

【问题讨论】:

  • rails 中的继承创建了称为单表继承的东西:guides.rubyonrails.org/…
  • 我认为这不是您想要做的事情。 @Anthony 通过单表继承 (STI) 让您走上正轨
  • 换句话说,当您继承时,您不会创建多个表。

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 rails-activerecord


【解决方案1】:

使用性病。有一个名为“建筑物”的表,其中有一列名为“类型”。让新类扩展 Building 类。每个类都可以选择拥有自己不同的关系。您将能够实例化 Building 并获取类型定义的类或直接实例化所需的类。

【讨论】:

  • 谢谢你现在我看到我的问题并不清楚!我需要使用'type'
猜你喜欢
  • 2019-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-24
  • 1970-01-01
相关资源
最近更新 更多