我想在登录管理员控制器之前验证IP地址。
before_filter :validate_ip
我应该如何创建此IP验证?我只想写一下在控制器中有权访问的IP地址。
答案 0 :(得分:0)
第一个解决方案是动态的,因为您可以在运行时填充数组:
def validate_ip
valid = %w[127.0.0.1 10.0.0.1]
redirect_to(login_path) unless valid.include?(request.remote_ip)
end
限制IP的另一种方法是在routes.rb
中使用约束:
get '/admin' => 'admin#super_secure_action', :constraints => { :ip => %w[127.0.0.1 10.0.0.1] }
# or
constraints(:ip => %w[127.0.0.1 10.0.0.1]) do
# Every route defined in here will be restricted.
get '/admin' => 'admin#super_secure_action'
end
有关Rails和路由的更多信息,请务必查看:Rails Dispatch - The Powerful New Rails Router。