gpt4 book ai didi

ruby-on-rails - 创建包含 Rails 模型的 gem

转载 作者:行者123 更新时间:2023-12-01 21:26:32 25 4
gpt4 key购买 nike

我已经阅读了很多有关该主题的文章,但似乎没有什么能完全满足我的需求。如果我重复或不清楚某些东西,我很抱歉,因为我既是 ruby​​ 和 Rails 的新手,也是 stackoverflow 的新手。

我有一个现有的 Rails 应用程序,其中有很多基础设施。我想采用它的一些模型,将它们嵌套在命名空间中,并将所有这些模型放入 ruby​​ gem 中,以便在其他 Rails 应用程序中使用。根据我的理解, rails 的加载路径存在问题,因为它们是一种约定,并且定义另一个引擎存在问题,因为这样你就有两个引擎,它们就会崩溃。

我一直在寻找指南或教程来学习如何做到这一点,但运气不佳,但我确信如果有人能指出我的情况,那就太好了。

我尝试用引擎制作 gem ,但由于碰撞或缺少 rails 而失败。

我正在运行 Rails 3.2.3 和 ruby​​ 1.9.3。

最佳答案

是的,您可以创建包含模型的 gem 并将它们包含在多个 Rails 应用程序中。这是一种方法:

  • 创建一个 gem:捆绑 gem demo_gem

  • 创建模型或将模型移动到 demo_gem。我更喜欢将它们放在 gem 的 lib/ 文件夹中,例如 demo_gem/lib/app/models/student.rb

    module DemoGem
    class Student < ActiveRecord::Base
    end
    end
  • 需要 demo_gem/lib/demo_gem.rb 中的所有模型

    require "demo_gem/version"
    require "demo_gem/app/models/student.rb"
    module DemoGem
    # Your code goes here...
    end
  • 将 gem 包含在您的 Rails 应用程序中Gemfile(我假设您的代码不是开源的,并且您不打算发布该 gem):

    gem 'demo_gem', path: '../demo_gem'

现在,您可以在多个 Rails 应用程序中的任何位置使用这些模型,只需使用 DemoGem::Student

这里假设您使用单个数据库并且表存在。但是,您可以在 gem 本身中创建迁移并使用 Rails generators 将它们复制到应用程序。

关于ruby-on-rails - 创建包含 Rails 模型的 gem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11887999/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com