Dex*_*Dex 1 regex routing ruby-on-rails omniauth
我希望匹配state/city路径中的模式,除非状态变量等于"auth"
match '/:state/:city' => 'cities#index', :as => :state_cities, :constraints => {:state => /(?!auth)/ }
Run Code Online (Sandbox Code Playgroud)
例如,mydomain.com/fl/miami很好.mydomain.com/auth/twitter不好.
我正在使用omniauth,它要求你/auth/twitter进行身份验证,但是当我输入时无处可寻rake routes.
根据mu太短的评论,这是我提出的答案:
match '/:state/:city' => 'cities#index', :as => :state_cities, :constraints => OmniauthPassThru.new
Run Code Online (Sandbox Code Playgroud)
LIB/omniauth_pass_thru.rb
class OmniauthPassThru
def initialize
@passthru = ["/auth/facebook", "/auth/twitter"]
end
def matches?(request)
return false if @passthru.include?(request.fullpath)
true
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4913 次 |
| 最近记录: |