【问题标题】:Using Liquid as a Ruby on Rails layout使用 Liquid 作为 Ruby on Rails 布局
【发布时间】:2010-01-04 18:34:56
【问题描述】:

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

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

我尝试使用 <%= Liquid::Template.parse(<code from database>).render %> 在我的 layout.erb 文件中,但我不能使用“yield”命令(因为这是一个布局,我应该有一种渲染页面的方法。)

但是当我将“layout.liquid”与{{ content_for_layout }} 一起使用时,可以找到但是,无法从数据库中加载详细信息(我的意思是 HTML 代码..)

我希望我说清楚了:D)

【问题讨论】:

  • @sameera207: 是像liquidmarkup.org 中的“液体”吗?还是形容词?

标签: ruby-on-rails liquid-layout


【解决方案1】:

看看这个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 是一个 Liquid 类。

我希望这个想法会有所帮助。

【讨论】:

  • sameera207 这是否为您解决了问题?我现在正在尝试使用它,并且让面条围绕秋田如何使用布局来渲染这些东西现在让我很头疼。任何更新或博客文章都会很棒!
【解决方案2】:

【讨论】:

  • 您好 crazyrails,感谢您的回复。但我的问题仍然存在:(,因为我想将我的布局代码保留在数据库中。(例如: .. )但我的问题是,因为 rails 布局有 方法,我无法在我的 layout.erb 文件中执行此操作 A;我在这里做错了什么,或者有什么替代方法再次感谢..
  • 也许——这就是你想要的:构建一个带有索引操作的控制器。在控制器中,您必须将所有 Liquid::Template.parse().render 东西分配给 @output 变量。在索引视图中调用 .
猜你喜欢
  • 2010-11-10
  • 2011-06-18
  • 2016-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多