我试图在Rails 5.0.0.alpha中做一些非常简单的事情:渲染一个不在public
目录中的HTML文件。
我的路线是:
get '/api/docs' => 'static#documentation'
我的StaticController
看起来像这样:
class StaticController < ApplicationController
def documentation
render 'api/documentation/index.html'
end
end
我想呈现的index.html
文件位于app/views/api/documentation/index.html
。
每当我在浏览器中加载/api/docs
时,我得到的是200 OK
响应,其中包含空白页,这意味着什么都没有呈现。
我已经尝试了render
的每个变体:
render 'app/views/api/documentation/index.html'
render 'views/api/documentation/index.html'
render 'api/documentation/index.html'
render '/documentation/index.html'
render 'app/views/api/documentation/index'
render 'views/api/documentation/index'
render 'api/documentation/index'
render '/documentation/index'
render file: 'app/views/api/documentation/index'
render file: 'views/api/documentation/index'
render file: 'api/documentation/index'
render file: '/documentation/index'
等。我错过了什么?
编辑:服务器输出:
Started GET "/api/docs" for 198.167.XXX.XX at 2015-11-16 02:07:48 +0000
Processing by StaticController#documentation as HTML
Completed 200 OK in 1ms (Views: 0.2ms | ActiveRecord: 0.0ms)
答案 0 :(得分:0)
我认为这是因为主要的应用程序模板。你可以用2种方式修复,
1.检查<%= yield %>
标记是否在application.html.erb
或者,使用
禁用它layout false
答案 1 :(得分:0)
对于任何其他与OP有类似问题的人。如果您使用的是api_only rails应用程序,请确保您的控制器继承自nan
nan
而不是ActionController::Base