如何将Ruby on Rails模型转换为.json文件?

3
如果我有一个基本的Ruby on Rails模型设置(例如典型的博客文章应用程序),其中包含一个如下所示的index操作:
def index
  @blogs=Blog.all
end

我可以帮您将所有博客转换为.json文件。如果我这样做:

怎么操作呢?
def index
  @blogs=Blog.all
  respond_to do |format| 
  format.html{}
  format.json{render json: @blogs.to_json}
end

这将会产生一个json输出(我想要的),但是在我的浏览器中路径为/blogs.json,但我想要一个实际的.json文件(不仅仅是在路径下在浏览器中可见)。
我该如何操作?

您是指要下载一个 JSON 文件吗? - sufinsha
如果需要的话,是的。 - TABISH KHAN
1
你的问题不是很清楚。你想让浏览器提示用户下载一个.json文件而不是在浏览器中显示它吗?还是你想把数据写入到服务器所在机器上的一个.json文件中?如果是后者,你只想做一次,还是想有一个可频繁使用的命令来实现它? - Jordan Running
ActiveRecord似乎有一个to_json方法,可以将模型序列化为json文件,但现在已被弃用。您可能希望查看http://www.rubydoc.info/github/rails/rails/ActiveSupport/JSON/Encoding/JSONGemEncoder。 - MarsAtomic
如果您只想从该URL默认返回JSON响应(而不是HTML),则只需删除format.html{}行,或者如果您仍然希望能够获取HTML版本(在.html处),则可以在路由文件中设置默认格式,例如resources:blogs,:defaults => {:format =>:json} - Camden Narzt
1个回答

0

只需替换

 format.json{render json: @blogs.to_json}

format.json{send_data @blogs.to_json}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接