我已经在Windows中使用rails一段时间了,我决定最近在linux上试用它。所以我一直在设置一切,但现在我在Windows上创建的项目在ubuntu上运行不正确:它无法插入以下语法:
render json: @products
产生以下错误:
/home/dcastro/workspace/teste/app/controllers/products_controller.rb:9: syntax error, unexpected ':', expecting '}'
format.json { render json: @products }
^
/home/dcastro/workspace/teste/app/controllers/products_controller.rb:20: syntax error, unexpected ':', expecting '}'
format.json { render json: @product }
只有在我将其更改为:
时才有效render :json => @products
起初我以为是因为我使用的是旧版本的红宝石(即1.8.7)。所以我安装了1.9.2p290,但是没有用。
如果重要,我正在使用rails 3.1.0和ubuntu 11.04。
有谁知道造成这种情况的原因是什么?我该如何解决?提前谢谢!
答案 0 :(得分:2)
{ foo: 'bar' }
是Ruby 1.9中引入的新哈希文字语法(不确定哪个版本)。因此,它应该(并且在我的系统上)与Ruby 1.9.2p290一起使用。
答案 1 :(得分:1)
以下是正确的!
render :json => @products
如果您在产品型号中设置了as_json
类方法,那么您在该哈希中的任何内容都将包含在JSON端点的响应中。
根据官方3.1导轨指南,this is the correct syntax。