http_refererを使ってrouteのroutes.rbに制約を適用したいのですがどうすればいいですか?rails 3にhttp_referer制約を適用するにはどうすればよいですか?
ありがとうございました
http_refererを使ってrouteのroutes.rbに制約を適用したいのですがどうすればいいですか?rails 3にhttp_referer制約を適用するにはどうすればよいですか?
ありがとうございました
私が知る限り、これは2通りあります。
簡単、あまりコントロールで:
#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 =>
ハッシュと要求のどの部分でcontstrainことができます。 matches?(request)
のクラスレベルメソッドを実装する、カスタムのカスタム制約クラスを作成することもできます。このメソッドは、制約が満たされているかどうかについてtrue/falseを返す必要があります。
パトリックの答えを改善するために、私はアプリでの制約クラスを配置
私の代わりにこれを行うだろう?
#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
ありがとうございました。私の問題を解決しました。どのようにして制約ハッシュの可能な値がわかるでしょうか? – Zahid