Перенаправить все поисковые роботы на определенное действие через route.rb Ruby on Rails

Мне нужно перенаправить все web crawlers, например facebook / google /twitter, на определенное действие в моем routes.rb API Rails. Я узнал, что это может сделать constraints в Ruby On Rails . Но я не знаю, как это сделать. Любая помощь будет признательна!


person ImranNaqvi    schedule 01.04.2016    source источник
comment
какова ваша цель с сканерами? Вам действительно нужно проверять, что запрос был сделан сканером?   -  person Manuel van Rijn    schedule 01.04.2016
comment
@ManuelvanRijn да дорогой   -  person ImranNaqvi    schedule 01.04.2016


Ответы (1)


Как насчет использования ApplicationController + драгоценного камня браузера? https://github.com/fnando/browser:

class ApplicationController < ActionController::Base
    #...
    before_action :check_if_is_crawler

    def check_if_is_crawler
       browser = Browser.new(request.headers['User-Agent'])
       if browser.bot?
         #Do whatever you want here.
       end
    end
end
person Yacine    schedule 01.04.2016
comment
дорогой, есть ли способ проверить это на route.rb - person ImranNaqvi; 02.04.2016
comment
Но почему? Маршруты здесь не для маршрутизации пользовательским агентом. Если вы действительно хотите справиться с этим на низком уровне, проверьте, как настроить промежуточное программное обеспечение. Не так сложно сделать. guides.rubyonrails.org/rails_on_rack.html - person Yacine; 02.04.2016