DOC中有一段话这么解释respond_to的:
“Rails determines the desired response format from the HTTP Accept header submitted by the client”
def index
@people = Person.find(:all)
respond_to do |format|
format.html
format.xml { render
ml => @people.to_xml }
end
end
在《跨越边界: REST on Rails》中(http://www-128.ibm.com/developerworks/cn/java/j-cb08016/index.html),
Bruce Tate是这样说的:
它的工作方式是这样的:
1、respond_to 方法接受单个代码块,并传递一个实例变量(标为 format)到代码块。
wants 对每个可能的类型都有一个方法。控制器可以为控制器期望的每个类型指定一个代码块。
2、如果方法名称与 HTTP Accept 头中的类型匹配,index方法执行对应的代码块。
3、如果没有指定代码块(例如 format.html),Rails 就执行默认动作(在这个示例中,呈现 app/views/people/index.rhtml)。
分享到:
相关推荐
sinatra-respond_to 描述: 在Sinatra中提供对内置Web服务支持的response_to样式Rails块 功能/问题: 根据提供的内容处理内容类型的设置 自动可以调整XMLHttpRequests返回Javascript 根据HTTP_ACCEPT标头解析...
Ruby on Rails的respond_to代码类似物对ASP.NET MVC NuGet 项目: 说明 该库为您的控制器提供了类似响应响应的 RoR 扩展方法。 简而言之, RespondTo允许您的操作根据客户端提交的 *HTTP Accept* 标头以不同的...
我不喜欢在所有操作中编写 rails 的respond_to和/或respond_with 。 但是没有它们,如果请求具有意外的Accept:标头,应用程序会导致 ActionView::MissingTemplate。 示例:请求可能导致错误, AV::MissingTemplate ...
"线上问题分析:The target server failed to respond(目标服务器返回失败)" 知识点总结 在本文中,我们将分析一个常见的线上问题,即目标服务器返回失败(The target server failed to respond)。我们将从多个...
在使用Apache HttpClient进行HTTP通信时,可能会遇到"HttpClient问题:The server failed to respond with a valid HTTP resp"这样的异常。这个错误通常表示服务器未能返回一个有效的HTTP响应,这可能是由多种原因...
to_spreadsheet to_spreadsheet允许您的Rails 3+应用程序使用现有的slim / haml / erb / etc视图呈现Excel文件。安装将其添加到您的Gemfile中: gem 'to_spreadsheet'用法在控制器中: # my_thingies_controller....
CSV 与显示JSON或XML一样,此gem... ApplicationController respond_to :xml , :json , :csv def index respond_with Widget . all end def show respond_with Widget . find ( params [ :id ] ) endend 或者: class W
to_lang to_lang是一个Ruby库,它在Google Translate API的支持下将语言翻译方法添加到字符串和数组中。 安装 只需运行: gem install to_lang 用法 要使用to_lang ,需要使用该库,然后使用您的Google Translate ...
}respond_to :json在app / controllers /中创建一个Api控制器class ApiController < ActionController::API include ::ActionController::Serialization respond_to :jsonend将以下gem添加到j
if method_sym.to_s =~ /^find_by_(.*)$/ find($1.to_sym => arguments.first) else super end end end ``` 这段代码定义了一个`Legislator`类,并在其上实现了`method_missing`。当尝试调用形如`find_by_...
它被定义为:/// This struct represents a chatbot that is connected to a given `ship`,/// is watching/posting to a specific `chat_ship`/`chat_name`/// and is using the function `respond_to_message` to ...
respond_to? ( :blank? ) 将以上内容与ActiveSupport版本进行比较: require 'active_support/core_ext/object/blank' unless Object . new . respond_to? ( :blank? ) 关键区别在于功能的即
<script src="path/to/respond.min.js"> ``` 2. **确保HTML文档类型声明正确**:对于IE8,确保你的文档类型声明为`<!DOCTYPE html>`. 这会触发IE8的"标准模式",这是`respond.js`工作的前提。 3. **开启X-UA-...
<script src="path/to/respond.min.js"> <![endif]--> <!-- 页面内容 --> ``` 这段代码中的`<!--[if lt IE 9]>...<![endif]-->`是条件注释,只在IE8及以下版本的浏览器中执行,这样可以确保其他现代浏览器...
should "respond to: push" do assert_respond_to @queue, :push end end end ``` 这段代码定义了一个测试方法:“测试:一个队列实例应该能够响应 :push 调用”。可以看出,通过上下文的方式,测试代码不仅更...
Mobylette 2.0+ deprecated the respond_to_mobile_requests method. Now you must use `include Mobylette::RespondToMobileRequests` instead. to configure it, see the configuration. Also stylesheet and ...
典型的 Rails 控制器create操作如下所示: # POST /products # POST /products.json def create @product = Product.new(params[:product]) respond_to do |format| if @product.save format.html { redirect_to @...
format.ext_json { render :json => @post.errors.to_json, :status => :unprocessable_entity } end end end ``` #### 总结 Rails 结合 Ext JS 的方式能够极大地提高 Web 应用的开发效率。通过使用丰富的 ...
npm install --save react-respond-to 注意:该库假定您已为Array.prototype.find和matchMedia放置了必要的matchMedia 。 为什么要使用另一个响应组件? 简而言之,我们查看了可用的内容,但没有找到自己喜欢的API...
- How long will it take for the collaborator to respond? 3 Straightforward Reasons to Mock 1. Collaborator not yet implemented or still under development 2. Hardware independence 3. Fault ...