地理编码器DOCS说明如何使用街道地址伪装地理编码器查找,但它似乎不适用于IP地址。
这是我的spec / support / geocoder.rb
Geocoder.configure(:lookup => :test)
Geocoder::Lookup::Test.add_stub(
"1.1.1.1", [
{
'latitude' => 10,
'longitude' => 10,
'address' => 'Test Address',
'state' => 'Test State',
'state_code' => 'TS',
'country' => 'Test Country',
'country_code' => 'TC'
}
]
)
Geocoder::Lookup::Test.set_default_stub(
[
{
'latitude' => 10,
'longitude' => 10,
'address' => 'Test Address',
'state' => 'Test State',
'state_code' => 'TS',
'country' => 'Test Country',
'country_code' => 'TC'
}
]
)
这是我的服务:
if params[:ip]
lat = Geocoder.search(params[:ip])[0].latitude
lng = Geocoder.search(params[:ip])[0].longitude
venues = venues.near([lat, lng], APP_CONFIG['geo_location_radius'], order: 'average_rating DESC')
end
这是我的服务规范:
context "find featured venues by ip" do
let(:params) do
{
date: Date.today,
featured: true,
ip: '1.1.1.1',
}
end
it do
aggregate_failures do
expect(raw_venues.map { |v| v.id }.sort).to eq [venue1.id]
end
end
end
如果我在it
区块中输入pry并尝试Geocoder.search('1.1.1.1')
我会在澳大利亚找到一个“真实”的对象响应,而不是我的存根,而我正确地得到了我的存根输入类似Geocoder.search('Florence, Italy')
..
如何设置存根响应以使用IP查找?