2011-03-28 68 views
2

我正在制作一个用于学习目的的Rails博客引擎。我想用液体作为模板引擎。我有这样的事情在导轨中使用液体3

## posts_controller.rb 
    ... 
    def index 
     @posts = Post.all 
    end 
    ... 
    ## posts/index.html.liquid 
    {% for post in posts do %} 
     {{ post.title }} 
    {% endfor %} 

这给了我以下错误:

undefined local variable or method `template' for 
#<PostsController:0x103d16290> 

我已经LiquidView加载初始化/ liquid.rb 请让我知道什么是我的问题。 谢谢

+0

你打'在PostsController template'地方?你的初始化器是什么样的?更多细节=更好的答案。 – coreyward 2011-03-28 00:58:28

+0

我在PostsController中没有模板方法。这里是我的初始化程序:require'extras/liquid_view' ActionView :: Template.register_template_handler:liquid,LiquidView 。只是认为液体会像哈姆那样神奇地工作。 – Voidx 2011-03-28 01:25:31

+0

好吧,我经历了液体文档,它确实没有多大帮助。任何人都知道建立一个轨道应用程序加载液体本地文件或知道这样做的开源项目,请帮助我。非常感谢。 – Voidx 2011-03-28 03:22:00

回答

5

因为我知道你应该有液体方法的属性(在你的情况'标题')。尝试像这样

class Post < ActiveRecord::Base 
    liquid_methods :title 
end 

并参见。

如果不设法使后级由液体滴::继承

class Posts < Liquid::Drop 

end 

**顺便说一句,因为你得到一个错误,声称失踪模板变量确保您的液体呈现部分如下

(直接从液体文档复制)

@template = Liquid::Template.parse("hi {{name}}") # Parses and compiles the template 
@template.render('name' => 'tobi')    # Renders the output => "hi tobi" 

希望这有助于

欢呼

sameera

+0

定义liquid_methods为我工作 – newx 2012-05-30 00:21:30

+0

@newx,感谢您的答复,将检查出 – sameera207 2012-05-30 07:13:06