我已geocode_ip_address
在 ApplicationController 中添加,因此我可以从他们的会话中获取用户位置信息。
我有一些控制器,我不希望它们根据 Geokit 进行检查。它确实会减慢应用程序的速度,并且不需要在那里进行地理检查。
因为它被称为 likegeocode_ip_address
而不是 asbefore_filter
我无法使用skip_before_filter
任何想法?
我已geocode_ip_address
在 ApplicationController 中添加,因此我可以从他们的会话中获取用户位置信息。
我有一些控制器,我不希望它们根据 Geokit 进行检查。它确实会减慢应用程序的速度,并且不需要在那里进行地理检查。
因为它被称为 likegeocode_ip_address
而不是 asbefore_filter
我无法使用skip_before_filter
任何想法?
它实际上使用了 store_ip_location 过滤器,所以你可以把
skip_before_filter :store_ip_location
话虽如此,它将地理代码的结果存储在 cookie 中,在进行服务调用之前正在检查该 cookie,因此后续调用不会对性能产生太大影响
您可以根据您所在的控制器有选择地不调用代码,如下所示:
unless ["controller1", "controller2", "etc"].member?(params[:controller])
geocode_ip_address
end
将您不希望代码运行的控制器的名称放在列表中,并且不会在这些控制器中调用它。
您还可以创建一个常量,它是一个控制器列表,如下所示:
CONTROLLERS_TO_NOT_FILTER_BY_GEOCODE = ["controller1", "controller2", "etc"]
unless CONTROLLERS_TO_NOT_FILTER_BY_GEOCODE.member?(params[:controller])
geocode_ip_address
end