3

我想创建一个Ruby on Rails布局,它应该是Liquid格式。

基本上我想做的是让用户创建自己的布局并将它们保存在数据库中。

我试图 <%= Liquid::Template.parse(<code from database>).render %>在我的 layout.erb 文件中使用,但我不能使用“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_file是一个液体类。

我希望,这个想法是有帮助的。

于 2010-01-05T16:24:33.750 回答
1

请阅读关于 Tobis 的文章

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

或查看此截屏视频

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

于 2010-01-04T19:49:43.820 回答