Routes i Constraint Problem

Mam problem z Constraint uzywanym w routes:

[code]require ‘whitelistconstraint’

namespace :postback do
constraints WhitelistConstraint.new do
post ‘adsmarket’ => ‘adsmarket#adsmarket’, :as => :adsmarket
end
end[/code]
w lib mam plik whitelistconstraint.rb:

[code]class WhitelistConstraint

def initialize
#lokalny ip
@ips = ‘192.168.1.3’’
end

def matches?(request)
@ips.include?(request.remote_ip)
end

end[/code]
Jesli wywoluje lokalnie metode metode adsmarket: http://localhost:3000/postback/adsmarket

dostaje komunikat: No route matches “/postback/adsmarket”

Tak dla jasności, jak wchodzisz na podanego urla?

Nie zamieściłeś żadnego kodu formy, a w routes masz metodę “post”.

Hej przepraszam, w kodzie mam blad. Metode testuje prz ustawieniach dla get:

[code]require ‘whitelistconstraint’

namespace :postback do
constraints WhitelistConstraint.new do
get ‘adsmarket’ => ‘adsmarket#adsmarket’, :as => :adsmarket
end
end[/code]

w metodzie matches? zrób sobie puts z remote ip.

OK pomoglo :slight_smile: uzylem innego IP zamiast lokalnego IP 127.0.0.1. Ale przy testach jak stubuje metode matches:

WhitelistConstraint.stubs(:matches?).returns(true)

Problem jest ten sam. Co musze jeszcze dodac do tego testu aby routing byl poprawny?

W podanym przez Ciebie kodzie stubujesz metodę matches? dla klasy WhitelistConstraint, a musisz to zrobić dla instancji. Możesz więc wystubować cały obiekt, albo zrobić coś takiego:

WhitelistConstraint.any_instance.stubs(:matches?).returns(true)

OK, dzieki Arnvald :slight_smile: BTW my sie znamy :slight_smile:

Tak, wiem :wink:

Udało Ci się w końcu sprawić, żeby wszystko działało z tym constraints?

Hej,

dzieki za pomoc. Dziala wszystko.

Pozdrawiam