2016-08-15 74 views
0

我正在構建一個Sinatra應用程序,它將訪問訪客的IP地址並返回該位置的天氣。繼地理編碼doc,它似乎是獲得IP很簡單,只要NameError:未定義的本地變量或方法`請求'爲主:對象

city = request.location.city 

進入該進IRB,但是,只是給你的文章標題看NameError。對我而言邏輯路線,並試圖創建一個新的類使用request方法會導致另一個NameError - 這次是由Rack::Request.new(env)採取的env散列。

我可以弄清楚如何自己構建這個東西,但是我很困惑這個問題,並且假設我忽略了文檔中沒有提到的東西。我做錯了什麼導致requestenv保持未定義狀態,我該如何正確定義它們?

回答

1

它是如此簡單:

require "sinatra" 
require "geocoder" 

get "/" do 
    p request.location.city 
    "works" 
end 

你的問題是,你想運行在irb,你有沒有創建並填充您的請求對象的請求的情況下。爲了玩它,我會建議只運行sinatra。或者使用類似racksh,tux的東西,它給了你一些像irb一樣的東西,但需要所有的上下文。

相關問題