我想在使用http_referer的路由上的routes.rb中应用约束我该怎么办?
由于
答案 0 :(得分:0)
就我所知,你可以采取两种方式之一。
更容易,但控制力较弱:
#config/routes.rb
resources :waffles, :constraints => {:referer => 'http://wafflesarerad.com'}
更多控制:
#config/routes.rb
require 'referer_constraint'
constraints (RefererConstraint) do
resources :waffles
end
#lib/referer_constraint.rb
class RefererConstraint
def self.matches?(request)
request.referer = 'http://wafflesarerad.com' ? true :false
end
end
您可以使用routes.rb中的:constraints =>
哈希来请求请求的任何部分。您还可以使用实现matches?(request)
的类级方法的自定义约束类。该方法应该返回true / false,以确定是否满足约束条件。
答案 1 :(得分:0)
为了改进Patrick的答案,我建议
我会这样做:
#config/routes.rb
constraints (RefererConstraint) do
resources :waffles
end
#app/constraints/referer_constraint.rb
class RefererConstraint
def self.matches?(request)
request.referer == 'http://wafflesarerad.com'
end
end