从/ lib中的代码渲染视图

时间:2011-07-28 14:53:10

标签: ruby-on-rails-3

让我们假设我们有一个Rails项目,其中一个名为Foo的类驻留在lib目录中。

我们希望根据其属性生成一些HTML。

现在,通过适当地连接HTML片段来创建一个大字符串并不是一件好事。

我的问题是:有没有幸运的方法呢?

1 个答案:

答案 0 :(得分:3)

你有几个非常简单的选择。如果您正在使用ERB,您可以执行以下操作:

ERB.new(File.read(the_file_path)).result

我在我的一个应用程序中使用了一个名为Tilt(https://github.com/rtomayko/tilt)的库来呈现HAML模板。这是我现在正在运行的确切香肠工厂代码:

template = Tilt.new(ITEM_TEMPLATE) # ITEM_TEMPLATE is the path of a .haml file
template.render nil, {:item => item, :item_details => item_details}
# item and item_details are now available as local variables in the partial

如果你不想走模板路线,也可以试试像Erector(http://erector.rubyforge.org/userguide.html)这样的东西。

最糟糕的情况:您可以使用HEREDOC很好地格式化片段,而不是连接片段:

<<-HTML
  <div id="foo">
    <span class="bar">#{thing.method}</span>
    <div>#{thing.attribute}</div>
  </div>
HTML