2011-12-16 81 views
7

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

怎么会这样做呢?

+1

有一个类似的(和一个非常好)[问题](http://stackoverflow.com/questions/151030/how-do-i-call-controller-view-methods-from-the-console-in-rails)在这里SO – maprihoda 2011-12-16 19:20:52

回答

4

取决于部分,它做什么,它调用什么方法。但基本上你必须看看它使用了什么模板引擎(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 

如果您的部分通话任何的轨道API的你需要复制/或包括API和那个变得复杂