before_filter没有被称为Rails 4

时间:2015-03-05 20:49:48

标签: ruby-on-rails ruby-on-rails-4 before-filter

我的应用程序控制器中有这个:

class ApplicationController < ActionController::Base
    helper_method :mobile_device?
    before_filter :prepare_for_mobile

    private
    def mobile_device?
        request.user_agent=~ /Mobile|webOS/
    end

    def prepare_for_mobile
        request.format = :mobile if mobile_device?
    end
end

我正在关注此视频直播视频:http://railscasts.com/episodes/199-mobile-devices

问题是: 当我第一次加载页面时,它检测到移动浏览器并将请求作为MOBILE格式获取。但是,如果我去我网站上的任何其他页面,它会呈现HTML格式而不是MOBILE。如果我重新加载页面,它会再次检测到格式是MOBILE。

这里有什么问题?

1 个答案:

答案 0 :(得分:1)

您可能想尝试使用before_action代替before_filter

编辑 :评论中提及的paul richter ... before_filter仍然可以使用。但请注意,Rails不鼓励使用before_filter并建议开发人员使用before_action

来源Ruby on Rails 4.2 Release Notes