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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (25)

假设您在您的用户控制器中,并且希望为一个显示请求获得一个json响应,如果您能够在视图/user/dir中创建一个名为show.json的文件,并且在您的用户#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

是这样吗?

提问于
用户回答回答于

你应该能在你的respond_to区块:

format.json render :partial => "users/show.json"

中呈现模板的app/views/users/_show.json.erb

用户回答回答于

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

{
    "first_name": "<%= @user.first_name.to_json %>",
    "last_name": "<%= @user.last_name.to_json %>"
}

扫码关注云+社区