微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

原文地址:https://www.jb51.cc/ruby/273789.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐