IPブロック

■テストの書き方

  def test_ip_block
    @request.remote_addr = "123.123.123.123"

    get :login
    assert_response :success
    assert_template "#{RAILS_ROOT}/public/404.html"
  end

■メソッドの書き方

  def valid_ip?
    if request.remote_ip == MY_SERVER_IP || request.remote_ip == DEVELOPMENT_IP
      return true
    else
      render :file => "#{RAILS_ROOT}/public/404.html"
      return false
    end
  end

■携帯とかを使うアプリで、PCアクセスを制限する場合
※携帯用のプラグインとしてJpMobile使用

  def pc_blockker
    unless request.mobile? #&& request.mobile.valid_ip?
      if valid_ip?
        redirect_to :controller => "administrator/admin", :action => "login"
      end
      return false
    else
      return true
    end
  end

  def valid_ip?
    if request.remote_ip == MY_SERVER_IP || request.remote_ip == DEVELOPMENT_IP
      return true
    else
      render :file => "#{RAILS_ROOT}/public/404.html"
      return false
    end
  end