簡體   English   中英

如何從另一個Rails Engine(AlchemyCMS)內部的Rails Engine(Spree)包含幫助方法

[英]How to Include a Helper Method from a Rails Engine (Spree) inside of another Rails Engine (AlchemyCMS)

我遇到的是:

AlchemyCMS是一個Rails引擎,用於允許Rails應用程序具有內容管理系統。 它還具有一個預覽頁面,可以在其中加載帶有布局的示例頁面的iframe。 這里的布局是Spree布局。 我對Alchemy進行了修改,使其能夠加載狂歡應用程序的布局,而不是其默認布局。

這樣做不會加載輔助方法。 我目前收到:

undefined local variable or method `title' for #<#<Class:0x007f8dcc359498>:0x007f8de17dd6a8>

其中title是應用程序中的第一個輔助方法。

我嘗試了5000種不同的技術來嘗試將Spree的輔助方法加載到AlchemyCMS中,但我做不到。

有人知道嗎?

您可以通過在應用程序控制器或基本的Alchemy控制器中包含Spree的助手來實現。

有一個煉金術和狂歡的擴展,在這里做類似的事情: https : //github.com/magiclabs/alchemy_spree/blob/master/app/controllers/spree/base_controller_decorator.rb

您將只想朝相反的方向前進,而不是裝飾Spree控制器以添加Alchemy,而是裝飾Alchemy控制器以包括您需要使用的Spree控制器助手中的任何一個: https : //github.com/spree/spree/ blob / master / core / app / controllers / spree / base_controller.rb

在這種情況下,您需要包括常見的控制器助手: https : //github.com/spree/spree/blob/master/core/lib/spree/core/controller_helpers/common.rb

編輯:

Alchemy::BaseController.class_eval do
  include Spree::Core::ControllerHelpers
  include Spree::Core::ControllerHelpers::Store
  helper Spree::Core::Engine.helpers
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM