我有我的服务器上的文件,该文件是我的应用程序目录之外。这是保存JSON对象的文本文件,/path/to/data.json
。
什么是服务于Rails的这个文件最简单的方法,例如返回它在响应GET请求?
这是我到目前为止已经试过,通过this answer和他人的启发。 (这可能是遥远基地 - 我是新来的轨道。)
resources :data
class DataController < ApplicationController
@data = File.read("/path/to/data.json")
def index
render :json => @data
end
end
这是行不通的。当我直接把我的浏览器http://myserver.com/data.json我只看到“空”,而不是data.json
文件。
任何想法,我做错了什么?
我认为这是一个范围的问题;你的外@data是不一样的方法@data。也就是说,你不能使用实例变量如预期的方法之外,因为没有实例呢。
它应该工作,如果你使用一个类变量,如
@@data = File.read("/path/to/data.json")
然后
render :json => @@data
把它放在public/assets/javascripts
。或app/assets/javascripts
。该服务器甚至可能返回正确的内容类型。
你也可以做到在同一行,例如
render :file => '/path/to/data.json',
:content_type => 'application/json',
:layout => false