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

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

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

非常感谢.

解决方法

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

示例(2011/9/14增加)

rails doc

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

def index
  @people = Person.all

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

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

render :xml => @people

或者如果格式是json:

render :json => @people

猜你在找的Ruby相关文章