Ruby on rails 3 如何通过ip限制对ActiveAdmin登录页的访问?

Ruby on rails 3 如何通过ip限制对ActiveAdmin登录页的访问?,ruby-on-rails-3,activeadmin,Ruby On Rails 3,Activeadmin,rails版本 轨道3.2.1 目标: 仅访问ActiveAdmin登录页office计算机 代码: route.rb 约束(:ip=>/(^127.0.0.1$)|(^192.168.10。[0-9]*$)/)不允许 结束 这不是工作,有什么问题吗 ========================== 我编辑我的route.rb跟随代码 constraints(:ip => /(^127.0.0.1$)|(^192.168.10.[0-9]*$)/) do ActiveAdm

rails版本

轨道3.2.1

目标:

仅访问ActiveAdmin登录页office计算机

代码:

route.rb

约束(:ip=>/(^127.0.0.1$)|(^192.168.10。[0-9]*$)/)不允许

结束

这不是工作,有什么问题吗

==========================

我编辑我的route.rb跟随代码

  constraints(:ip => /(^127.0.0.1$)|(^192.168.10.[0-9]*$)/) do
    ActiveAdmin.routes(self)
  end
  devise_for :admin_users, ActiveAdmin::Devise.config

这是工作

请参阅轨道指南一章布线(http://guides.rubyonrails.org/routing.html#advanced-限制条件):


我相信这也可以用另一种方法来完成,但我相信你已经明白了重点。

请参阅Rails指南中的“布线”一章(http://guides.rubyonrails.org/routing.html#advanced-限制条件):


我相信这也可以用另一种方法来完成,但我相信你明白了重点。

我用这种方法,因为如果类对于路由来说太复杂,你可以将一些逻辑移入类中

这个类必须有一个匹配项?方法,如果用户应该有权访问该路由,则返回true;如果用户不应该,则返回false

它帮助我在不使用正则表达式的情况下向数组添加IP

我希望,这对某人有帮助)

更多信息-


我使用这种方式,因为如果类对于路由来说太复杂,您可以将一些逻辑移入类中

这个类必须有一个匹配项?方法,如果用户应该有权访问该路由,则返回true;如果用户不应该,则返回false

它帮助我在不使用正则表达式的情况下向数组添加IP

我希望,这对某人有帮助)

更多信息-


感谢您的回复^^我阅读了Rails指南章节routing and edit route.rb constraints(:ip=>/(^127.0.0.1$)|(^192.168.10.[0-9]*$)/)do ActiveAdmin.routes(self)end designe_for:admin_用户,ActiveAdmin::designe.config这是工作,谢谢!这个答案对你有帮助吗?如果是的话,如果你把我的回答记为接受,我将不胜感激。否则,请告诉我您还需要知道什么。:)感谢您的回复^^我阅读了Rails指南章节routing and edit route.rb constraints(:ip=>/(^127.0.0.1$)|(^192.168.10.[0-9]*$)/)do ActiveAdmin.routes(self)end designe_for:admin_用户,ActiveAdmin::designe.config这是工作,谢谢!这个答案对你有帮助吗?如果是的话,如果你把我的回答记为接受,我将不胜感激。否则,请告诉我您还需要知道什么。:)
  constraints(:ip => /(^127.0.0.1$)|(^192.168.10.[0-9]*$)/) do
    ActiveAdmin.routes(self)
  end
  devise_for :admin_users, ActiveAdmin::Devise.config
class WhitelistConstraint
  def initialize
    @ips = Whitelist.retrieve_ips
  end
 
  def matches?(request)
    @ips.include?(request.remote_ip)
  end
end
 
TwitterClone::Application.routes.draw do
  match 'admin/' => 'admin#login',
    :constraints => WhitelistConstraint.new
end
class WhitelistConstraint
  IPS = %w[
    143.132.200.43,
  ]

  def self.matches?(request)
    IPS.include?(request.remote_ip)
  end
end

Rails.application.routes.draw do

  constraints(WhitelistConstraint) do
    ActiveAdmin.routes(self)
    mount Sidekiq::Web => '/sidekiq'
  end
end