Создайте класс, подобный следующему, и поместите его в RAILS_ROOT/lib/blacklist_constraint.rb
.
class BlacklistConstraint
def initialize
if Rails.env == 'development' or Rails.env == 'test'
@whitelist = ['59.120.201.20', '59.120.201.21'].freeze
else
@whitelist = ['59.120.201.20', '59.120.201.21'].freeze
end
end
def matches?(request)
!@whitelist.include?(request.remote_ip)
end
end
... и в вашем файле rout.rb ...
match "*", :constraints => BlacklistConstraint.new, :controller => "blacklist", :action => "my_access_denied_action"
Вам может потребоваться загрузить класс в инициализаторе или изменить config.autoload_paths += %W(#{Rails.root}/lib)
в config/application.rb
(Rails3.x).