Haml: 使用液体

创建于 2010-06-04  ·  8评论  ·  资料来源: haml/haml

每当我尝试渲染 Liquid 时,我都会在对象/模型上收到is_haml?错误。 是否有某种兼容性设置允许 Liquid 和 HAML 并排运行?

谢谢!

最有用的评论

@dewski - 我在尝试在自定义液体过滤器中利用 ActionView Helpers 时遇到了一些问题。

例子:

module LiquidFilters

  include ActionView::Helpers::TagHelper
  include ActionView::Helpers::UrlHelper

  def mailto(address, name = nil)
    mail_to(address, name, :encode => "javascript")
  end

end

Liquid::Template.register_filter(LiquidFilters)

然后我收到以下错误...

Liquid error: undefined method `is_haml?' for #

一个简单的解决方法是在模块中也包含 Haml::Helpers ...

include Haml::Helpers

不确定这是否适用于您的情况。

最好的祝福,
大卫鲍德温

所有8条评论

Haml 定义了一个Object#is_haml?方法来判断当前模板上下文是否是 Haml。 我想 Liquid 的上下文对象可能在某处未定义它......你能给我一个演示这个问题的最小 Rails 应用程序的压缩包吗?

@dewski - 我在尝试在自定义液体过滤器中利用 ActionView Helpers 时遇到了一些问题。

例子:

module LiquidFilters

  include ActionView::Helpers::TagHelper
  include ActionView::Helpers::UrlHelper

  def mailto(address, name = nil)
    mail_to(address, name, :encode => "javascript")
  end

end

Liquid::Template.register_filter(LiquidFilters)

然后我收到以下错误...

Liquid error: undefined method `is_haml?' for #

一个简单的解决方法是在模块中也包含 Haml::Helpers ...

include Haml::Helpers

不确定这是否适用于您的情况。

最好的祝福,
大卫鲍德温

我认为这完全符合我的需要,我会对此进行测试并回复您。 谢谢!

谢谢大卫,解决了这个问题。 我将保持开放状态,看看 Nathan 想如何处理这个问题。 Haml 是否应该检查是否定义了 Liquid,如果是,包括它?

对 Liquid 的特定处理不是这里的正确方法。 我们仍然需要找出根本问题并解决它。 如果可能的话,我仍然想要一个 Rails 应用程序 repro。

这是一个准系统应用程序,应该为您产生问题......

git clone git://github.com/baldwindavid/liquidhaml.git
cd liquidhaml
rake db:setup
script/server

唯一帖子的“显示”视图应显示错误。 然后看看...

config/initializers/liquid.rb

取消注释include Haml::Helpers应该使过滤器按预期工作。

此示例使用 Rails 2.3.5 和以下 gem...

config.gem "haml", :version => "3.0.4"
config.gem "liquid", :version => "2.0.0"

如果您需要额外的,请告诉我。 谢谢。

最好的祝福,
大卫鲍德温

关闭此问题已过时。 如果有人仍然受到它的影响,请告诉我,我会重新开放。

谢谢@baldwindavid 。 添加 include Haml::Helpers 解决了这个问题。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

k0kubun picture k0kubun  ·  13评论

seanhandley picture seanhandley  ·  17评论

Arcovion picture Arcovion  ·  11评论

tisba picture tisba  ·  10评论

mattwildig picture mattwildig  ·  9评论