From fa2aad914f7117bcf0d85b4ab74103a7088352ce Mon Sep 17 00:00:00 2001 From: RichMorin Date: Thu, 12 Aug 2010 13:45:48 -0700 Subject: [PATCH] Migrated from getting-liquid-to-work-in-rails v5 --- Getting-Liquid-to-Work-in-Rails.textile | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Getting-Liquid-to-Work-in-Rails.textile b/Getting-Liquid-to-Work-in-Rails.textile index 47b5afb..c75e436 100644 --- a/Getting-Liquid-to-Work-in-Rails.textile +++ b/Getting-Liquid-to-Work-in-Rails.textile @@ -13,18 +13,18 @@ Liquid's Rails plugin tries to use your helpers as Filters. Your helpers will always receive the piped-in text as the first parameter, and then any Filter parameters (passed after the colon). Helper: -

+
    module ApplicationHelper
        def truncate(input, length)
            input[0..length] + '...' 
        end
    end
-
+
Liquid: -
 
-  {{ 'This is a long section of text' | truncate: 3 }} #=>   Thi... 
-
+
+{{ 'This is a long section of text' | truncate: 3 }} #=>   Thi... 
+
h2. Using Rails model data and methods in Liquid templates @@ -35,11 +35,11 @@ If you'd like to pass your ActiveRecord (or other) objects to a Liquid template, The easy way is to add a @liquid_methods@ call: -

+
 class Post < ActiveRecord::Base
   liquid_methods :title, :body, :comments
 ...
-
+
"Behind the scenes":http://github.com/tobi/liquid/tree/master/lib/liquid/module_ex.rb, @liquid_methods@ actually constructs a "Liquid Drop":http://liquid.rubyforge.org/classes/Liquid/Drop.html with the methods you include. This way, you have lazy loading (say, of associated models such as "comments" in the example above) of methods. @@ -47,13 +47,13 @@ class Post < ActiveRecord::Base An alternate route is to add a @to_liquid@ call in your object, returning either one of the types listed above (string, array, hash, etc) or an object that in turn responds to @to_liquid@. -

+
 class Post < ActiveRecord::Base
 ...
  def to_liquid
     {'title' => title, 'body' => body}
   end
-
+
Finally, you can write and register a completely new "Liquid Drop":http://liquid.rubyforge.org/classes/Liquid/Drop.html class. This enables you to pull from various models and helps you consolidate (lazy-loaded) methods used just for passing data to templates. \ No newline at end of file