Ruby on rails 使用;ApplicationController.new.render“到”字符串;在Rails api应用程序中(config.api_only=true)

Ruby on rails 使用;ApplicationController.new.render“到”字符串;在Rails api应用程序中(config.api_only=true),ruby-on-rails,ruby-on-rails-5,applicationcontroller,Ruby On Rails,Ruby On Rails 5,Applicationcontroller,我将Rails 5应用程序构建为: 然而,对于我精简的api应用程序,ApplicationController.new.render\u to\u string似乎只是呈现“”。这让我感到困惑,因为我希望它要么提供内容,要么提出一个例外 有什么建议我应该采取什么路线来生成Ruby风格的html吗?我想您必须显式地使用基类。您的应用程序是一个API应用程序,因此您的控制器可能继承自ActionController::API ActionController::Base.new.render_to

我将Rails 5应用程序构建为:

然而,对于我精简的api应用程序,ApplicationController.new.render\u to\u string似乎只是呈现
“”
。这让我感到困惑,因为我希望它要么提供内容,要么提出一个例外


有什么建议我应该采取什么路线来生成Ruby风格的html吗?

我想您必须显式地使用基类。您的应用程序是一个API应用程序,因此您的控制器可能继承自ActionController::API

ActionController::Base.new.render_to_string

我想您必须显式地使用基类。您的应用程序是一个API应用程序,因此您的控制器可能继承自ActionController::API

ActionController::Base.new.render_to_string

试试这个吧@SergioTulentsev似乎不管我使用那篇文章中建议的哪一行,它都会呈现
,例如
Rails.logger.error ApplicationController.render(内联:“erb内容”)。inspect#=>”
。这有帮助吗?试试这个吧@SergioTulentsev似乎不管我使用那篇文章中建议的哪一行,它都会呈现
,例如
Rails.logger.error ApplicationController.render(内联:“erb内容”)。inspect#=>”
。这有帮助吗?这似乎奏效了。我还尝试了@TarunLalwani的建议,从
ActionController::Base
继承特定的控制器。它也起了作用。哪种解决方案被认为是最轻量级的?我想这取决于您的用例,如果您想直接呈现html,@Tarun lalwani的答案可能是“轻量级”。但是,如果您想返回一个将html呈现为正文/内容的json,^可能更显式、更轻量级,因为它只是一个方法调用,而不是类的整个继承。或者只是
ActionController::Base.render
这似乎可行。我还尝试了@TarunLalwani的建议,从
ActionController::Base
继承特定的控制器。它也起了作用。哪种解决方案被认为是最轻量级的?我想这取决于您的用例,如果您想直接呈现html,@Tarun lalwani的答案可能是“轻量级”。但是,如果要返回将html呈现为正文/内容的json,^可能更显式、更轻量级,因为它只是一个方法调用,而不是类的整个继承。或者只是
ActionController::Base.render
ActionController::Base.new.render_to_string