2

GeoNames が有効な無料の Web サービスで、gem の「タイムゾーン」を使用するためのアカウントを作成しました (約 1 日前)。私が行くとき、http://www.geonames.org/enablefreewebserviceそれは言う

 The account my_user_name has been successfully enabled to use the free webservices.

アドレスバーに次を入力してEnterをクリックすると機能します

http://api.geonames.org/findNearbyPostalCodes?lat=47&lng=9&username=my_user_name

ただし、Rail4 アプリケーション コンソールで次のコマンドを実行すると、

Timezone::Configure.begin do |c|
  c.username = 'xxxx'
end
timezone = Timezone::Zone.new :latlon => [-34.92771808058, 138.477041423321]

エラーメッセージが表示されます:

 Timezone::Error::NilZone: No zone was found. Please specify a zone.

GeoNames を使用するのはこれが初めてなので、制限を超えていません。これを修正するにはどうすればよいですか?私が気付いたことの 1 つはrequire 'timezone'、コンソールで false を返すことです。

ありがとう。

4

1 に答える 1

0

ユーザー名の設定がおそらく未定義であると思われます。コンソールを開いて確認する

Timezone::Configure.username

の場合nilは、問題が見つかりました。

の代わりに、初期化子内に構成コードを配置してみてくださいapplication.rb。ファイルconfig/initializers/timezone.rbを作成して、そこにコードを配置してみてください。

Timezone::Configure.begin do |c|
  c.username = 'xxxx'
end

その後、コンソールを起動して、ユーザー名を再度確認してください。定義されている場合は、リクエストが機能するはずです。

于 2014-10-09T15:43:10.723 に答える