视图不适当地渲染json

时间:2013-12-30 19:47:58

标签: ruby-on-rails json view

我使用的是rails 4.0.0和ruby 2.0。

我的模型Country有3个属性:id,name:string和flag:string。

控制器:

...
respond_to :html, :json
def index
  @countries = Country.all      
  respond_whit @countries.as_json(only: [:id, :name])
end

因此,当我在浏览器中访问countries.json时,它会显示所有属性,而只显示id和name。我已经尝试重新定义方法as_json,如下所示:

def as_json(options = nil)
  {id: id, text: name}
end

但也没有工作。

奇怪的是,当我在控制台中运行as_json时,它的工作非常完美。

缺少什么工作?

2 个答案:

答案 0 :(得分:0)

您可以使用jbuilder来显示特定属性

json.companies @companies.map { | company |

  {
    id: company.id,
    text: company.name

  }
}

答案 1 :(得分:0)

怎么样

respond_with @countries, only: [:id, :name]