gpt4 book ai didi

ruby-on-rails - Rails 可安装引擎使用来自主应用程序的数据库模式

转载 作者:太空宇宙 更新时间:2023-11-03 16:19:03 27 4
gpt4 key购买 nike

我正在为我正在处理的应用程序创建一个 Rails 引擎。

基本上,应用程序分为两个部分:

  1. 私有(private)
  2. 公开

私有(private)站点是所有管理功能所在的主要应用程序,公共(public)站点(引擎)应该能够从私有(private)应用程序访问模型。

这听起来好像与我相反,但这是规范所要求的。

我知道通常您会在您的主应用程序中访问引擎模型:

引擎名称::型号

我如何访问引擎内的主应用程序?

例子:

私有(private)用户会去 foo.bar/videos/new 并创建一个新视频。

公共(public)用户可以访问 foo.bar/public/videos 并访问这些相同的视频。

最佳答案

我刚刚对此进行了测试,并且能够毫无问题地从引擎内部的主机应用程序引用代码。

# In the main application
# lib/test_library.rb
TestLibrary
def self.say_something
"Hello! I am defined in the host application, not the Engine."
end
end

# Then, inside the engine
# app/views/your_engine_name/some_resource/index.html.erb
<%= TestLibrary.say_something %>

这在引擎模板中打印得很好。因此,如果您有一个 Video 模型,您可以在引擎内的 Controller 中引用它,就像 Controller 是您的应用程序的一部分一样。

话虽如此,我不确定引擎模式是否最适合您的要求。

以这种方式编写意味着您不能在其他地方重用引擎代码,如果重用不是您关心的,那么引擎可能是比您需要的更重量级的解决方案。您可以考虑使用 namespace .

关于ruby-on-rails - Rails 可安装引擎使用来自主应用程序的数据库模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37819927/

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