【发布时间】:2012-09-30 20:53:42
【问题描述】:
背景和我的研究
我想在不重新加载浏览器页面的情况下将数据从服务器发送到客户端。我正在阅读Rails guide,使用 JSON 似乎很有希望。 (如果我错了,请纠正我)。
2.2.8 渲染 JSON
JSON 是许多 AJAX 库使用的一种 JavaScript 数据格式。导轨 内置支持将对象转换为 JSON 并呈现 JSON返回浏览器:
render :json => @product 你不需要在对象上调用 to_json 你想要渲染的。如果您使用 :json 选项,渲染将 自动为你调用 to_json。
问题
我希望能够在浏览器端渲染这个 JSON 对象。以下是该问题的适当代码。
视频控制器
class VideosController < ApplicationController
include VideosHelper
def home
@video = Video.last
end
def next
@next_video = next_video(params[:id])
render :json => @next_video
end
end
next.json.erb
{
"title": "<%= @video.title %>"
"url": "<%= @video.url %>"
"youtube_id": "<%= @video.youtube_id %>"
"genre": "<%= @video.genre %>"
"category": "<%= @video.category %>"
"likes": "<%= @video.likes %>"
"dislikes": "<%= @video.dislikes %>"
"views": "<%= @video.views %>"
"user_id": "<%= @video.user_id %>"
"created_at": "<%= @video.created_at %>"
"updated_at": "<%= @video.updated_at %>"
}
如果我想在 home 操作上呈现 @next_video JSON 对象。我该怎么做?
【问题讨论】:
-
params[:id] 是否可用于 home 操作?
-
有什么理由不关注 REST?
-
出于用户体验的原因。我想在不重新加载页面的情况下从一个视频更改为另一个视频,因为用户可能正在页面上填写表单。
标签: ruby-on-rails ajax json