【问题标题】:Rails codebase scaling and changing on ActiveRecordRails 代码库在 ActiveRecord 上的缩放和更改
【发布时间】:2015-02-17 21:52:37
【问题描述】:

我目前正在重写我们的 Rails 服务器代码,因为我们的项目开始以来已经过去了好几个月,并且有很多死代码。我们需要从 Rails 3.2.12 迁移到 Rails 4。问题是我们需要重命名我们的一些模型,还需要它们连接到相同的 PostgresSQLdatabase (ActiveRecord) 和 Redis 对象。

例如:

#api v1
class ModelA < ActiveRecord::Base
  include Redis::Objects
    ...
    attr_accessible :id, :text_body
    ...
    set something_redis_ids #redis object
    ...
end

收件人:

#api v2
class RenamedModelB < ActiveRecord::Base
  include Redis::Objects
    ...
    attr_accessible :id, :text_body
    ...
    set something_redis_ids #redis object
    ...
end

那是我想让RenamedModelB 拥有来自PSQLidtext_body 以及来自redis 的something_redis_ids 指向与ModelA 完全相同的项目。我们如何做到这一点?我们更喜欢从头开始重写代码库,所以不想在我们旧的、丑陋的api v1 之上构建。

感谢您抽出宝贵时间阅读。

【问题讨论】:

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


    【解决方案1】:

    您的问题是关于现有表名与您的新类名不匹配吗?如果是这样,您可以简单地覆盖它:

    class Product < ActiveRecord::Base
      self.table_name = "PRODUCT"
    end
    

    http://guides.rubyonrails.org/active_record_basics.html#overriding-the-naming-conventions

    【讨论】:

    • 这也会改变redis-object参数吗?
    • 我没用过,所以不确定。它们很可能也允许您覆盖任何键名。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-14
    • 1970-01-01
    • 2018-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多