首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Rails 3.2中使用相似的数据库定义功能相同的模型

在Rails 3.2中使用相似的数据库定义功能相同的模型
EN

Stack Overflow用户
提问于 2018-04-05 23:04:53
回答 1查看 17关注 0票数 1

我有一个带有旧模式的数据库,我将从该数据库中迁移数据。表名和关系与数据库相同。由于某些原因,当我为旧实例定义模型时,它们的行为就像是新数据库的模型一样。

from_db.rb

代码语言:javascript
复制
class FromDB < ActiveRecord::Base
 self.abstract_class = true
 establish_connection FROM_DB
end  

from_clip.rb

代码语言:javascript
复制
class FromClip < FromDB
 self.table_name = "clips"
 belongs_to :clippable, polymorphic: true, counter_cache: true
 belongs_to :video, class_name: "FromVideo"
end

clip.rb

代码语言:javascript
复制
 class Clip < ActiveRecord::Base
   belongs_to :clippable, polymorphic: true, counter_cache: true
   belongs_to :video
 end

控制台

代码语言:javascript
复制
FromClip.first.class.name
FromClip Load (0.2ms)  SELECT `clips`.* FROM `clips` LIMIT 1
=> "Clip" 

FromClip可用的所有方法和关联都是剪辑模型中的方法和关联,而不是FromClip模型中的方法和关联,但是FromClip的实例来自正确的数据库。谢谢你的帮忙

EN

回答 1

Stack Overflow用户

发布于 2018-04-06 01:58:17

因此,它与性传播感染有关。有两个模型继承自Clip。如果我使用

代码语言:javascript
复制
self.inheritance_column = :_non_existing_column

在FromClip模型中,它按预期工作。我只需要将clippable方法指向正确的模型,并确保我正确地带上了类型列。

代码语言:javascript
复制
def clippable
  ("From" + clippable_type).constantize.find_by_id(clippable_id)
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49675681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档