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