Использование "ApplicationController.new.render_to_string" в приложении API Rails (config.api_only = true)
У меня есть приложение 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 ответ
Решение
Я думаю, вы должны явно использовать базовый класс. Ваше приложение является приложением API, поэтому ваш контроллер, вероятно, наследуется от ActionController::API
ActionController::Base.new.render_to_string