0
こんにちは、すべて これはsinatraで定義されている定数についてのバグです、私のコードを見てみましょう。は既に初期化された定数であり、2回必要です
route.rb
require 'sinatra'
get '/' do
C = "this is a test for constant"
"Hello World!"
end
Gemfile
source 'http://rubygems.org'
gem 'rack'
gem 'sinatra'
config.ru
require './route'
run Sinatra::Application
Webサーバの起動、我々は以下の
$ rackup
[2011-10-08 19:54:36] INFO WEBrick 1.3.1
[2011-10-08 19:54:36] INFO ruby 1.9.2 (2011-07-09) [i686-linux]
[2011-10-08 19:54:36] INFO WEBrick::HTTPServer#start: pid=3268 port=9292
127.0.0.1 - - [08/Oct/2011 19:54:42] "GET/HTTP/1.1" 200 25 0.0059
127.0.0.1 - - [08/Oct/2011 19:54:42] "GET/HTTP/1.1" 200 25 0.0142
/home/zcdny/repo/test/route.rb:4: warning: already initialized constant C
127.0.0.1 - - [08/Oct/2011 19:54:43] "GET/HTTP/1.1" 200 25 0.0094
127.0.0.1 - - [08/Oct/2011 19:54:43] "GET/HTTP/1.1" 200 25 0.0098
/home/zcdny/repo/test/route.rb:4: warning: already initialized constant C
127.0.0.1 - - [08/Oct/2011 19:54:55] "GET/HTTP/1.1" 200 25 0.0003
127.0.0.1 - - [08/Oct/2011 19:54:55] "GET/HTTP/1.1" 200 25 0.0006
/home/zcdny/repo/test/route.rb:4: warning: already initialized constant C
127.0.0.1 - - [08/Oct/2011 19:54:56] "GET/HTTP/1.1" 200 25 0.0003
127.0.0.1 - - [08/Oct/2011 19:54:56] "GET/HTTP/1.1" 200 25 0.0005
01が表示されます
今
require 'sinatra'
configure do
C = "this is a test for constant"
end
get '/' do
"Hello World!"
end
route.rbファイルを修正
Eidt
は、もはや定数を警告サーバが初期化されます。 しかし、サーバーのログは依然としてダブル 'GET'が必要です。 私はちょうどそれがすべてのクライアントに必要な1つが必要です、それは私の質問です、それを解決する方法です。
ありがとうございます。
私は二度必要であると理にかなっているシナトラには何も起こりません。質問を見て、私はそれを編集します。 – coolesting
それでも、私の答えは変わりません。警告では、route.rbの4行目に定数を2回設定しています。あなたのファイルは一度だけロードされますが、その行はすべての要求に対して実行されます。 –
実際、configureブロックに定義されている定数を追加すると、エラーメッセージは表示されません。しかし、私は本当になぜシニラツラが2回シードする必要があるのか、毎回の行動の必要性を知っています。 – coolesting