Использование «ApplicationController.new.render_to_string» в приложении API Rails (config.api_only = true) - PullRequest
0 голосов
/ 28 июня 2018

У меня есть сборка приложения Rails 5 как приложение API :

# config/application.rb
module MyApp
  class Application < Rails::Application
    config.api_only = true
  end
end

В одном из моих действий с контроллером мне нужно визуализировать некоторый html со вкусом Ruby, а затем отправить его обратно в ответ json.

Стандартное приложение Rails делает это:

# app/controllers/my_controller.rb
def my_action
  html = ApplicationController.new.render_to_string("my_erb_or_haml_file", locals: {foo: "bar"}, layout: false)
  render :json => {html: html}, :status => :ok
end

Тем не менее, для моего приложения API для похудения ApplicationController.new.render_to_string, похоже, просто отображает " ". Это смущает меня, потому что я ожидаю, что оно будет либо обслуживать контент, либо выдавать исключение.

Какие-либо предложения, какой маршрут мне следует выбрать для создания HTML со вкусом Ruby?

1 Ответ

0 голосов
/ 03 июля 2018

Полагаю, вам нужно явно использовать базовый класс. Ваше приложение является приложением API, поэтому ваш контроллер, вероятно, наследует от ActionController :: API

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