首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Rails中,如何使用视图呈现JSON?

在Rails中,如何使用视图呈现JSON?
EN

Stack Overflow用户
提问于 2010-01-19 02:31:25
回答 7查看 155.4K关注 0票数 128

假设您在用户控制器中,并且希望获得显示请求的json响应,如果您可以在视图/用户/目录中创建一个名为show.json的文件,并在users#show操作完成后呈现该文件,那就更好了。

目前,您需要做的事情大致如下:

def show
  @user = User.find( params[:id] )
  respond_to do |format|
    format.html
    format.json{
      render :json => @user.to_json
    }
  end
end

但是如果你能创建一个自动渲染的show.json文件,那就更好了:

def show
  @user = User.find( params[:id] )
  respond_to do |format|
    format.html
    format.json
  end
end

这将为我节省大量的痛苦,并将我在控制器中呈现json时的那种可怕的肮脏感觉洗掉。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-01-19 02:43:09

您应该能够在您的respond_to块中执行以下操作:

respond_to do |format|
    format.json 
    render :partial => "users/show.json"
end

这将在app/views/users/_show.json.erb中呈现模板。

票数 65
EN

Stack Overflow用户

发布于 2010-01-19 02:43:10

尝试添加一个视图users/show.json.erb这应该在您请求JSON格式时呈现,并且您还获得了erb呈现它的额外好处,因此您的文件可能如下所示

{
    "first_name": "<%= @user.first_name.to_json %>",
    "last_name": "<%= @user.last_name.to_json %>"
}
票数 57
EN

Stack Overflow用户

发布于 2011-08-29 05:47:05

如果您正在寻找一种更干净的ERb语法替代方案,那么RABL可能是我所见过的最好的解决方案。作为其他解决方案的json_builder和argonaut似乎都有些过时,如果不打补丁就不能在Rails3.1上工作。

可以通过gem或查看GitHub存储库获得RABL;这也是很好的例子。

https://github.com/nesquena/rabl

票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2088280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档