2

我正在尝试编写一个 CMS 类型的应用程序,并希望允许用户使用 {{ page.image_url | my_img_tag }}。

辅助模块只是:

module LiquidFilters

  include ActionView::Helpers::TagHelper 
  include ActionView::Helpers::AssetTagHelper

  def my_img_tag(image_name)
    image_tag (image_name)
  end

end

然后我在渲染期间注册:

def liquidize(content, arguments)
 Liquid::Template.parse(content).render(arguments, :filters => [LiquidFilters]).html_safe
end

然而,返回的结果是:

Liquid error: undefined local variable or method `config' for #

我不想自己创建 img 标签,因为我正在使用回形针来定位来自 AWS-S3 的图像,并且我担心我会遇到问题。

非常感谢任何帮助 - 我对 ruby​​ 和 rails 还很陌生。

4

1 回答 1

2

当我在 LiquidFilter 模块中包含额外的两个 Sprockets 模块时,该代码有效。即需要的四个模块是:

include ActionView::Helpers::TagHelper 
include ActionView::Helpers::AssetTagHelper
include Sprockets::Helpers::RailsHelper
include Sprockets::Helpers::IsolatedHelper

Liquid 的这种使用使人们能够使用简单的 CMS 类型的应用程序将上传的图像嵌入到他们的 HTML 中,这些图像是由运行在 heroku 上的 Paperclip GEM 从亚马逊 S3 中提取的。

(感谢 Pascal 格式化我原来的问题)。

于 2013-04-03T16:21:39.590 回答