2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

使い方

セットアップ

gem 'liquid'

を追加して、

$ bundle install

するだけ。

基本的な流れ

  • 文字列のテンプレートを作成する
  • モデルに liquid_methods を追加
  • テンプレートをパースして表示

文字列のテンプレートを作成する

template = 'Hi!! {{ product.name }}'

モデルに liquid_methods を追加

  • to_liquidメソッドが定義される
  • liquid_methods に定義された属性のみ使える
model
class Product < ActiveRecord::Base
  liquid_methods :name
end

テンプレートを表示

controller
@template = Liquid::Template.parse('Hi!! {{ product.name }}')
@template.render('product' => Product.first)
  • テンプレート中で文法エラーが発生すると Liquid::SyntaxError の例外が発生する
>> Liquid::Template.parse("{{")
Liquid::SyntaxError: Liquid syntax error: Variable '{{' was not properly terminated with regexp: /\}\}/

フィルタ

シェルのパイプラインのようにテキストを変換していくことができる

module MarkupFilter
  def textilize(string)
    Markup.new(string).to_html
  end
end
{{ '*strong*' | textilize }} 

Tags

テンプレート中にロジックを埋め込む場合に使う

{{ foo }}

liquid-rails

Rails でファイルで呼び出せるようにする

コントローラからのアクセス

テンプレート中ではコントローラ中で利用可能なすべてのインスタンス変数とフィルタが利用可能となるため、制約できるメソッドが容易されている

メソッド名 使い方
liquid_assings テンプレート中で参照する名前をキーとインスタンスを値としたハッシュを渡す
liquid_filters 利用可能とするヘルパメソッドを記述する
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?