2015-04-04 42 views
1

我不知道爲什麼這個西納特拉的Hello World犯規從內部 我的RubyMine 3.2.4西納特拉在RubyMine的3.24無法啓動的WEBrick

require 'sinatra' 
# set :bind, '0.0.0.0' 
get '/' do 
    "Hello" 
end 

在運行窗口中輸出的RubyMine啓動的WEBrick:

C:\Ruby193\bin\ruby.exe -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) C:/Users/gonzo/RubymineProjects/jktest/sinatra.rb 

Process finished with exit code 0 

另一方面,在命令行 上啓動了這個腳本......

[email protected] ~/prj/sinatra 
$ /cygdrive/c/Ruby193/bin/ruby test.rb 
[2015-04-04 07:50:11] INFO WEBrick 1.3.1 
[2015-04-04 07:50:11] INFO ruby 1.9.3 (2014-11-13) [i386-mingw32] 
== Sinatra (v1.4.6) has taken the stage on 4567 for development with backup from WEBrick 
[2015-04-04 07:50:11] INFO WEBrick::HTTPServer#start: pid=11212 port=4567 

ruby​​mine使用相同的SDK,紅寶石1.9.3

任何想法,任何人?

+0

它已經一段時間,因爲我跑的Ruby on Windows,但那些2個不同的Ruby安裝?一個通過Cygwin運行,另一個通過'C:\ Ruby193'運行。此外,不要使用Webrick的任何東西,只要使用任何其他服務器,你的問題將可能會消失(在這方面,無論如何:) – iain 2015-04-10 18:27:44

+0

不,不同的安裝,/ cygwin/c等於c:\ – pastaking 2015-04-12 19:05:27

+0

不,不不同的安裝,/ cygwin/c等於c:\。使用Rubymine 3.2.4時,Linux系統也具有相同的行爲。 Webrick默認是從Sinatra開始的,好吧,我可以嘗試配置sinatra使用另一個web服務器。但我認爲這與Rubymine有些關係,我可以在下週嘗試一個新的Rubynine Testversion,現在它的7.0,但是實際上我不需要所有這些featuers,對於我的小腳本來說,Rubymine 3.2.4還行,我認爲也是新的版本將花費一些雄鹿:-( – pastaking 2015-04-12 19:12:31

回答

1

如果我使用此代碼,webrick從我的Rubymine 3.2.4開始。

# my_app.rb 
 
require 'sinatra/base' 
 

 
class MyApp < Sinatra::Base 
 
    # ... app code here ... 
 

 
    get '/' do 
 
    "Hello" 
 
    end 
 
    # start the server if ruby file executed directly 
 
    run! if app_file == $0 
 
end

如果註釋行#run!如果app_file == $ 0 它不會像上面那樣開始和sme行爲。

現在我可以去和多學習一些西納特拉:-)

+0

'run!if app_file == $ 0'因爲你使用[模塊化樣式](http:// www.sinatrarb.com/intro.html#Modular%20vs.%20Classic%20Style)(通過將它放入一個類並從'Sinatra :: Base'繼承),其他rwise你可能會使用config.ru(rackup)文件來啓動應用程序。至於爲什麼模塊化的風格修復你的問題,而經典不會,我不知道答案... – iain 2015-04-13 13:48:54