rails中'respond_to'的用例是什么?

时间:2010-05-03 06:30:14

标签: ruby-on-rails

respond_to do |format|
  format.html
  format.xml  { render :xml => @mah_blogz }
end

respond_to do |format|
      format.js
end

这是respond_toformat.htmlformat.xmlformat.js的内容?他们的目的是什么以及他们如何运作?

2 个答案:

答案 0 :(得分:9)

这是文档的链接

http://api.rubyonrails.org/classes/ActionController/MimeResponds/ClassMethods.html#method-i-respond_to

它是一种基于客户要求响应客户端的方式,如果客户端要求HTML,Rails会将HTML发送回客户端,如果他们要求XML然后是XML。

答案 1 :(得分:8)

说你这样做:

    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(不要重复自己)