我通过rails new <application-name> --api
使用Rails 5生成了一个仅限API的rails应用程序。我已经决定要包含一个用于测试某些内容的视图,并且在加载视图时遇到问题。
我创建了一个带有一些文本的users / index.html.erb文件,我的控制器现在只是def index; end
但是当我点击/ users URL时没有出现任何内容。我也尝试在config / application.rb中注释掉# config.api_only = true
,但这并没有影响任何内容。有关如何进行的任何建议?
答案 0 :(得分:18)
您无需为此目的取消注释config.api_only = true
,只需从ActionController::Base
继承您的控制器,或在您的ApplicationController
中执行此操作(默认为常规轨道生成)。
代码:
YourController < ActionController::Base
ApplicationController < ActionController::Base
答案 1 :(得分:0)
这来自ActionController :: Metal文档https://apidock.com/rails/ActionController/Metal
它说:
ActionController :: Metal默认不提供用于呈现>视图,部分或其他响应的实用程序,除了显式调用> response_body =,content_type =和status =之外。要添加您习惯于使用普通控制器的渲染助手,可以执行以下操作:
class HelloController < ActionController::Metal include AbstractController::Rendering include ActionView::Layouts append_view_path "#{Rails.root}/app/views" def index render "hello/index" end end
因此,我自己进行了尝试,并且仅通过添加两个模块进行添加即可,实际上在将其用于ActionController :: API时效果很好