Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在两个独立的rails应用程序之间共享布局和资源?_Ruby On Rails_Ruby_Layout - Fatal编程技术网

Ruby on rails 如何在两个独立的rails应用程序之间共享布局和资源?

Ruby on rails 如何在两个独立的rails应用程序之间共享布局和资源?,ruby-on-rails,ruby,layout,Ruby On Rails,Ruby,Layout,我目前正在将传统的Rails 2.x.x应用程序迁移到Rails 3.2。我通过将单片应用程序的特定部分分解为小型专用应用程序来实现这一点。我的问题在于代码重复。较小的应用程序将共享相同的客户端代码,用于一般布局、javascript和css如何打包布局和客户端代码,以便在单独的独立应用程序之间共享?我的初步猜测是,这可以通过可安装的引擎完成。但我不确定这是否过火。我写了一篇博客,展示了如何在Rails 3.2中一步一步地构建一个用于多个应用程序的共享布局引擎 浏览我的博客: 这个博客展示了我如

我目前正在将传统的Rails 2.x.x应用程序迁移到Rails 3.2。我通过将单片应用程序的特定部分分解为小型专用应用程序来实现这一点。我的问题在于代码重复。较小的应用程序将共享相同的客户端代码,用于一般布局、javascript和css如何打包布局和客户端代码,以便在单独的独立应用程序之间共享?我的初步猜测是,这可以通过可安装的引擎完成。但我不确定这是否过火。

我写了一篇博客,展示了如何在Rails 3.2中一步一步地构建一个用于多个应用程序的共享布局引擎

浏览我的博客:

这个博客展示了我如何构建一个Rails引擎来逐步在多个应用程序之间共享布局。我在这个博客中构建共享布局引擎的方式可能不是最好的。然而,我只想给那些仍在努力制造这种发动机的人一些线索

  • 我的引擎名为“PigriderLayout”。运行命令rails插件new PigriderLayout--mountable-d mysql来创建一个新的引擎项目。这里我使用-d mysql,因为我使用mysql作为数据库。您可以将其更改为适合您自己的数据库,并且不要忘记将相应的数据库gem添加到Gemfile中。我将gem'mysql2'、'0.3.11'放入我的gem文件中

  • 为所有共享布局内容生成控制器。运行此命令rails generate controller main globalLayout aboutUs contactUs。在这个主控制器中我有三个动作。然后,编辑文件config/routes.rb,使其看起来像:

    PigriderLayout::Engine.routes.draw do
    匹配“AboutUs”=>“main#AboutUs”,:as=>:AboutUs
    匹配“ContactUs”=>“main#ContactUs”,:as=>:ContactUs
    结束

  • 在app/views/piglider\u layout/main目录中,您现在应该可以看到三个视图文件。它们是globalLayout.html.erb、aboutUs.html.erb和contactUs.html.erb。您可以在aboutUs.html.erb和contactUs.html.erb中编写任何您想要的内容。在globalLayout.html.erb文件中,我写道:


  • git子模块ot引擎很好,如果您喜欢更多“低级”解决方案,您可以随时创建包含布局的文件夹。重复:请尝试阅读此内容,以更好地理解如何不回答。也就是说:“根本无法回答问题的答案”:仅仅是一个指向外部站点的链接