我正在尝试编写一个 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 还很陌生。
最佳答案
当我在 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 格式化我原来的问题)。
关于ruby-on-rails - 如何为 Rails Liquid GEM 创建 image_tag 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15148478/