gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 00:32:17 25 4
gpt4 key购买 nike

我希望我的门卫 View 使用应用程序布局:

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

最佳答案

如果您生成了 View 并将它们放置在 app/views/doorkeeper/** 中,则引擎仍使用 Doorkeeper Controller 。

要解决此问题,您必须将助手包含到引擎的 ApplicationController 中。假设你有这样的东西:

应用程序/helpers/application_helper.rb

module ApplicationHelper
def my_helper
"hello"
end
end

app/views/doorkeeper/applications/index.html.erb

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

除非您将应用程序助手包含到门卫 Controller 中,否则这将不起作用。所以在 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

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

关于ruby-on-rails-3 - 隔离引擎(门卫)- 使用 main_app 中的辅助方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10879150/

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