3

Ruby on Railsレイアウトを作成したいのですが、 Liquid形式にする必要があります。

基本的に私がやろうとしているのは、ユーザーが独自のレイアウトを作成してデータベースに保存できるようにすることです。

layout.erb ファイルで使用しようとし <%= Liquid::Template.parse(<code from database>).render %>ましたが、「yield」コマンドを使用できません (これはレイアウトであるため、ページをレンダリングする方法が必要です)。

しかし、「layout.liquid」を使用すると{{ content_for_layout }}、検索は機能しますが、データベースから詳細をロードできません (HTML コードを意味します..)

私は自分自身を明確にしたことを願っています:D)

4

2 に答える 2

4

このRuby on Railsプラグインを見てください。

http://github.com/akitaonrails/dynamic_liquid_templates

次に、コントローラーのデフォルトの Ruby on Rails 動作をインターセプトする方法を見つける必要があります。

class MyAwesomeController
  layout :get_my_db_layout
  ....
  protected
  def get_my_db_layout
    'as_if_by_a_miracle.liquid' # add your db finder here        
  end
end

次に、独自のクラス/メソッドで上書きLocalFileSystem#read_template_fileし、データベースからテンプレートを取得します。LocalFileSystem#read_template_fileLiquid クラスです。

このアイデアがお役に立てば幸いです。

于 2010-01-05T16:24:33.750 に答える
1

トビスの記事を読んでください

https://github.com/shopify/liquid/wiki/getting-liquid-to-work-in-rails

またはこのスクリーンキャストを見てください

http://railscasts.com/episodes/118-liquid

于 2010-01-04T19:49:43.820 に答える