在两个Rails应用程序之间共享通用模型

Sau*_*abh 5 ruby-on-rails

我正在开发一个电子商务应用程序,并在其管理网站上工作.这两个应用程序具有相同的业务域,并且在管理应用程序中需要一些来自电子商务应用程序的模型.

我已经在网上找到了一些共享模型的解决方案,虽然我不清楚哪个更好,我应该如何实现它.

找到的解决方案:

  1. 创建rake任务以将模型从电子商务应用程序复制到管理应用程序

  2. 创建第三个ruby模块并将模型放在那里并将模型从app目录拉到这个新创建的lib中并在app中需要它

  3. 自动将模型从电子商务应用程序加载到管理ruby搜索

    config.autoload_paths += %W(#{config.root}/../e-commerce-app/app/models/)
    
    Run Code Online (Sandbox Code Playgroud)

我认为第二种解决方案是正确的方法,虽然我不确定如何实现它.

dre*_*-hh 9

都不是.

如何创建共享gem并将其放在您的私有git仓库上.使用Rails,您可以通过将gem打包为rails_engine,为应用程序本身自动加载模型提供相同的机制

例子

最后需要在Gemfile中

gem 'my_gem_name', git: 'http:my_git_repo.com/my_gem_name'
Run Code Online (Sandbox Code Playgroud)

更先进的解决方案是为电子商务应用中的所需数据创建REST服务,并在管理应用中使用它.特别是对于用户(和身份验证),它甚至可以将其提取到单独的应用程序并提供UserAuthentication服务.