ruby-on-rails – rails – DRY respond_to重复操作

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – rails – DRY respond_to重复操作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的一个轨道控制器中,我必须响应几种格式,所以我使用典型的respond_to链:
respond_to do |format|
  format.html   { ... }
  format.mobile { ... }
  format.jpg  { ... }
  format.xml  { ... }
  format.js   { ... }
end@H_404_3@ 
 

通常,{…}部分是以多种格式重复的.在这种情况下,最好的方法是保持干燥?在html,mobile和xml有一个“重复”动作的情况下,我想做这样的事情:@H_502_5@

respond_to do |format|
  format[:html,:mobile,:xml] { ... }
  format.jpg  { ... }
  format.js   { ... }
end@H_404_3@ 
 

非常感谢.@H_502_5@

解决方法

你有没有尝试过format.any(:html,:mobile,xml)?

示例(2011/9/14增加)@H_502_5@

rails doc@H_502_5@

响应还允许您通过使用以下命令为不同的格式指定一个公共块:@H_502_5@

def index
  @people = Person.all

  respond_to do |format|
    format.html
    format.any(:xml,:json) { render request.format.to_sym => @people }
  end
end@H_404_3@ 
 

在上面的例子中,如果格式为xml,它将呈现:@H_502_5@

render :xml => @people@H_404_3@ 
 

或者如果格式是json:@H_502_5@

render :json => @people@H_404_3@

猜你在找的Ruby相关文章