【问题标题】:Rendering a partial from a ruby script or console从 ruby​​ 脚本或控制台渲染部分
【发布时间】:2011-12-16 18:53:41
【问题描述】:

是否可以从 ruby​​ 脚本内部或从 rails 控制台渲染部分内容?

要怎么做呢?

【问题讨论】:

  • 这里有一个类似的(而且非常好的)question SO

标签: ruby-on-rails ruby-on-rails-3


【解决方案1】:

取决于部分,它做什么,它调用什么方法。但基本上你必须看看它使用什么模板引擎(erb,haml)以及它做了什么调用(如果它调用其他内部api等)。 此外,如果您从数据库中获取任何数据(使用 activerecord),那么您必须自己在脚本中建立与数据库的连接并获取数据。

ActiveRecord::Base.establish_connection :adapter => 'sqlite3', :database => '#{YOUR_DATABSE}'

建立连接后,获取您需要的所有数据。

除此之外,渲染是非常基本的。

def render(*args, &block)
    self.response_body = render_to_string(*args, &block)
end

render_to_string,将调用模板引擎将其转换为 html。例如,如果它的 HAML 是这样的:

response = Haml::Engine.new(File.read("#{partial.html.haml")).render

如果您的部分调用任何 Rails API,您需要复制/或包含这些 API,这会变得复杂

【讨论】:

    猜你喜欢
    • 2020-04-11
    • 2014-03-31
    • 2016-02-03
    • 1970-01-01
    • 1970-01-01
    • 2015-08-01
    • 2013-08-18
    • 2017-05-07
    • 2012-03-02
    相关资源
    最近更新 更多