respond_to do |format|
format.html
format.xml { render :xml => @mah_blogz }
end
respond_to do |format|
format.js
end
这是什么respond_to
,format.html
,format.xml
和format.js
?他们的目的是什么?他们是如何工作的?在rails中'respond_to'的用例是什么?
respond_to do |format|
format.html
format.xml { render :xml => @mah_blogz }
end
respond_to do |format|
format.js
end
这是什么respond_to
,format.html
,format.xml
和format.js
?他们的目的是什么?他们是如何工作的?在rails中'respond_to'的用例是什么?
这里的链接到文件
其响应基于客户端的方式是什么,他们所要求的,如果客户要的HTML,Rails会发回HTML到客户端,如果他们要求XML和XML。
说你这样做是:
class UsersController < ApplicationController
def create
#
#your code
#
respond_to do |format|
format.xml {render :xml => xxx}
format.json {render :json => xxx}
format.html {render xxx}
end
end
def edit
#
#your code
#
respond_to do |format|
format.xml {render :xml => xxx}
format.json {render :json => xxx}
format.html {render xxx}
end
end
end
而做的:
class UsersController < ApplicationController
respond_to :xml, :json, :html
def create
#
#your code
#
respond_with xxx
end
def edit
#
#your code
#
respond_with xxx
end
end
并且那你如何保持代码的DRY(不要重复自己)
但大部分的时候,有是其他行动。如果你不希望他们回应那些其他格式呢?只是没有在应用程序中的这些文件? (例如,对于'new'操作,不包括new.json或new.xml)?这样做有没有漏洞或不好的做法?只要没有文件可以打电话,我想应该没有问题吧? – ahnbizcad 2014-07-04 14:46:29
@gwho:您可以自由地将'respond_to'调用限制为仅需使用':only'参数的操作。例如:'respond_to:json,:xml,只有:[:new,:create]'起作用。 - 或者 - 如果你不想使用':only',那么就不要写respond_with。使用'render' – Devaroop 2014-07-04 15:44:50
Ah Tahnk你。这似乎是一个非常自然,频繁的使用案例。有多少博客/资源倾向于跳过它,令人惊讶,只给出了最简单的情况。 – ahnbizcad 2014-07-12 23:04:24