加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails-3 – 隔离引擎(门卫) – 使用main_app中的帮助方

发布时间:2020-12-17 03:46:27 所属栏目:百科 来源:网络整理
导读:我希望我的门卫视图使用应用程序布局: https://github.com/applicake/doorkeeper/wiki/Customizing-views 它包含主应用程序中的路由和辅助方法. 对于路由,我可以将main_app添加到路径前面,但是对于帮助器方法,我得到以下错误: undefined method `is_active
我希望我的门卫视图使用应用程序布局:

https://github.com/applicake/doorkeeper/wiki/Customizing-views

它包含主应用程序中的路由和辅助方法.

对于路由,我可以将main_app添加到路径前面,但是对于帮助器方法,我得到以下错误:

undefined method `is_active?' for #<ActionDispatch::Routing::RoutesProxy:0xade808c>

<li class="<%= main_app.is_active?("high_voltage/pages","api") %>"><%= link_to t('developers'),page_path('api') %></li>

为什么是这样?帮助程序位于app / helpers / application_helper.rb中

解决方法

如果您生成了视图并将它们放在app / views / doorkeeper / **中,那么引擎仍然使用门卫控制器.

要解决此问题,您必须将助手包含在引擎的ApplicationController中.假设你有这样的事情:

应用程序/佣工/ application_helper.rb

module ApplicationHelper
  def my_helper
    "hello"
  end
end

应用程序/视图/门卫/应用/ index.html.erb

<p>
  <%= my_helper %>
</p>

在将应用程序助手包含在门卫控制器中之前,这将不起作用.所以在config / application.rb中:

class YourApp::Application < Rails::Application
  config.to_prepare do
    # include only the ApplicationHelper module
    Doorkeeper::ApplicationController.helper ApplicationHelper

    # include all helpers from your application
    Doorkeeper::ApplicationController.helper YourApp::Application.helpers
  end
end

当您要自定义布局时,这是类似的配置.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读