【发布时间】:2014-06-15 07:03:02
【问题描述】:
我正在开发一个使用 rails 引擎的项目,该引擎的视图将在主应用程序布局中使用。我的主要应用程序布局由导航链接组成,导航链接有点像面包屑,它为用户提供他们如何到达该特定页面的上下文。
所以我遇到的问题是:如果我访问已安装引擎的视图,该视图会在主应用程序布局内呈现视图。如何使作为主要应用程序一部分的导航链接动态化?
代码示例
module Engine
class ApplicationController < ::ApplicationController
end
end
Engines 应用程序控制器使用主应用程序应用程序控制器,这意味着主应用程序布局将用于呈现动作视图。
主应用应用布局(使用haml)
%html.no-js
%head
%title Main App
%body
.body-content
%main
= yield :navigation
.main-content
= yield
= site_footer
如果您注意到我的应用程序布局,我有 yield :navigation。每当有 content_for 方法用于定义它时,就会呈现这种情况。例如:假设我们正在从我的一个主应用程序控制器呈现索引操作,haml 看起来像这样
index.html.haml
- content_for :navigation do
%a.active{href: root_path}
%a{href: some_path}
end
%h1 Index page.
所以我的主要问题是,如果我渲染引擎控制器操作视图,引擎不知道如何为主应用程序构建导航链接。有什么方法可以让主应用程序定义它并让引擎以某种方式呈现导航链接。
【问题讨论】:
-
您必须提供一些代码示例 - 我可以为您提供有关 Rails 引擎的信息,但我不明白您想要实现什么?
-
RichPeck 我更新了问题。我尽量说清楚。
标签: ruby-on-rails ruby ruby-on-rails-4 rails-engines