大家都知道使用 respond_to 的好处。respond_to 将访问中的mime类型成功的囊括到其小而精致的结构里,而且访问里的mime类型在很多其他地方的应用比查询语句更加有效。比如,在 根据不同访问的类型 选择应用不同的过滤行为总是有好处的。今天起您将可以通过新的 request.format.html?,request.format.xml? 等语句方便得完成任务。
1 2 3 4 5 6 7 8 9 |
class MyController < ApplicationController # 针对访问类型切换登录授权方法 before_filter do |c| c.use_session_auth if c.request.format.html? c.use_token_auth if c.request.format.xml? end end |
或者您也可以使用简洁的方法来关闭sessions (来自变更列表的示例):
1 2 3 4 5 6 |
class MyController < ApplicationController # 为所有非html访问关闭session功能 sessions :off, :if => Proc.new { |request| not request.format.html? } end |
总结的说,那些令人讨厌又不得不需要鉴定的 mime类型 终于可以被完好的解决。这些代码不但可以识别”市面“上认可的 mime类型,它们还可以用来识别您为自己注册的 mime类型。
1 2 3 4 5 6 7 8 9 |
# 因为我想大家都同意我值得拥有自己的mime-type Mime::Type.register "text/ryan", :ryan class MyController < ApplicationController # 为所有ryan的访问关闭session功能 sessions :off, :if => Proc.new { |request| request.format.ryan? } end |
原文作者是 Ryan Daigle, 请访问他的博客
本片译文的原文地址:http://ryandaigle.com/articles/2007/2/15/what-s-new-in-edge-rails-mime-type-convenience-methods




而且访问里的mime类型在很多其他地方的应用比查询语句更加有效。 (‘里’是什么,’应用’->再加多个’中’)
我觉得应该不是这样的意思吧
我的翻译:但对mime-类型来说在其它地方中查询也是挺有用的.(我不知道mime-
type是什么!)
如果有什么错误请指出来!