Rails.application.routes.draw do
root action: :index, controller: 'institution/base', constraints: RoleRouteConstraint.new( :is_institution? )
root action: :index, controller: 'admin/base', constraints: RoleRouteConstraint.new( :is_admin? )
root action: :log_in, controller: :sessions
end
class RoleRouteConstraint
def initialize( attr = false )
@attr = attr
end
def matches?( request )
user = current_user( request.session[ :user_id ] ) if @attr
user.present? && Proc.new { | user | user.try( @attr ) || false }.call( user )
end
def current_user( user_id )
User.find_by( id: user_id ) if user_id
end
end
И в чем его будет преимущество перед планировщиком. При условии что планировщик запускает проверку файлов не при изменении файла, а отдельным таском?