Рендеринг партиала из скрипта ruby ​​или консоли - PullRequest
7 голосов
/ 16 декабря 2011

Возможно ли сделать рендеринг внутри скрипта ruby ​​или из консоли rails?

Как можно поступить так?

1 Ответ

4 голосов
/ 16 декабря 2011

Зависит от частичного, что он делает, какие методы он вызывает.Но в основном вы должны увидеть, какой шаблонизатор он использует (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-интерфейсов rails вам потребуется скопировать / или включить эти API, и это усложняется

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...