Ruby on rails 如何向Rails3网站发出json请求?

Ruby on rails 如何向Rails3网站发出json请求?,ruby-on-rails,json,Ruby On Rails,Json,我知道如果我有一个像 mysite/posts/1 返回给我的默认类型是html。我只需执行以下操作就可以获得资源的xml版本 mysite/posts/1.xml 但是如何获得json版本呢?下面的方法有效吗 mysite/posts/1.json 我问的原因是因为它似乎不起作用。因此,在进一步调查之前,我想我应该先弄清楚它是否“应该”以这种方式工作。你做得对,但如果控制器没有设置为响应json请求,你将什么也得不到。您将有一个如下所示的块: respond_to do |format|

我知道如果我有一个像

mysite/posts/1
返回给我的默认类型是html。我只需执行以下操作就可以获得资源的xml版本

mysite/posts/1.xml
但是如何获得json版本呢?下面的方法有效吗

mysite/posts/1.json

我问的原因是因为它似乎不起作用。因此,在进一步调查之前,我想我应该先弄清楚它是否“应该”以这种方式工作。

你做得对,但如果控制器没有设置为响应json请求,你将什么也得不到。您将有一个如下所示的块:

respond_to do |format|
  format.html
  format.xml { render :xml => @model_var.to_xml }
  format.json { render :json => @model_var.to_json } #without this line, .json requests will go unanswered by the web server.
end

您做得不错,但是如果控制器没有设置为响应json请求,您将什么也得不到。您将有一个如下所示的块:

respond_to do |format|
  format.html
  format.xml { render :xml => @model_var.to_xml }
  format.json { render :json => @model_var.to_json } #without this line, .json requests will go unanswered by the web server.
end

您甚至不需要
到_json
到_xml
,因为如果传递的对象不是字符串,Rails(在Rails的最新版本中)会自动调用此方法。因此,在Rails 3下,除了对模型变量的方法调用之外,它看起来是一样的?没错。您只需要传递模型(或者集合,如果我没记错的话),您甚至不需要将
传递到_json
传递到_xml
,因为如果传递的对象不是字符串,Rails(最新版本的Rails)会自动调用这个方法。所以在Rails 3下,它看起来是一样的,除了对模型变量的方法调用?没错。您只需要传递模型(或集合,如果我没记错的话)