respond_to

Ruby on Rails 之旅(七)—— Ruby on Rails 入门(5)

喜欢而已 提交于 2020-04-30 13:57:12
接下来我们一起学习一下respond_to 字面意思是响应给。。。我们可以理解为,你要什么格式。 以往一样的操作返回不同的格式,我们大多会这样处理: def show_html @users = User.find(:all) end def show_xml @users = User.find(:all) render :xml => @user.to_xml end def show_json @user = User.find(:all) render :json => @user.to_json end 有了respond_to,我们可以简化成这样的处理: def index @users = User.find(:all) respond_to do |format| format.html # index.html.erb format.xml { render :xml => @user.to_xml } format.json { render :xml => @user.to_json } end end 这种设计师符合ROR设计原则的(Don’t repeat yourself) 我们只需要定义一个action,只需要定义不同的格式就可以了。 我们看看都支持哪些格式 • format.html • format.xml • format.js • format