2011-09-02 63 views
3

我在建設一個Rails應用程序的第一個部分,我不能命令Rails的服務器命令不工作(其他命令,以及)

rails server 

工作,還是真的任何其他rails命令。每當我嘗試軌命令我得到的幫助屏幕像這樣:

$rails server 
Usage: 
    rails new APP_PATH [options] 

Options: 
-r, [--ruby=PATH]    # Path to the Ruby binary of your choice         # Default: /home/sgallagher/.rvm/rubies/ruby-1.9.2- p290/bin/ruby 
-b, [--builder=BUILDER]  # Path to a application builder (can be a filesystem path or URL) 
-m, [--template=TEMPLATE]  # Path to an application template (can be a filesystem path or URL) 
[--skip-gemfile]   # Don't create a Gemfile 
     [--skip-bundle]   # Don't run bundle install 
    -G, [--skip-git]    # Skip Git ignores and keeps 

等(它給了我同樣的「新軌道」命令,不管我把什麼命令)...

關於我的系統中可能丟失什麼或者爲什麼這些命令沒有響應的任何想法?謝謝

P.S.另一個奇怪的事情是,當我創造了這個應用程序,最初,我用命令:

rails new first_app 

這實際上創建了兩個應用程序:一個名爲「新」和另一個名爲「first_app」。它也沒有創建一個默認的Gemfile。

我運行的Rails 3.1.0和Ruby 1.9.2。在Ubuntu 10.04上。

+1

我這個問題,'捆綁EXEC軌server'我,我其實是使用Rails 3.1.0,其中,我認爲在最新的一個 –

回答

4

你可能已經安裝了Rails 3.1.0但forresty提到的,我不相信你的路徑是使用它。

我強烈建議rvm(你不使用它假設)。它會避免出現問題,並且很容易設置!

編輯

這可能是因爲它仍然試圖用你的系統的軌道。

rvm use 1.9.2然後只是做gem install rails,沒有sudo。看看是否有效。 RVM使用您的配置文件來存儲它的所有寶石,我的猜測是當您鍵入rails時,它使用的是系統之一。要確認這一點,輸入which rails,我想這不會在~/.rvm/...下。

確保您 echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile

+0

其實,我現在用RVM(昨天剛安裝了它),但我一直在使用Ruby之前安裝的node.js或therubyracer的原因1.8.8一兩個月,我想知道如果切換到rvm與我看到的奇怪有關... –

+0

上面的編輯。當您切換到RVM時,RVM會爲您想要的每個Ruby版本保留自己的gem緩存。這意味着你必須重新安裝之前在適當的RVM ruby​​下的所有寶石,否則它將無法識別它們。這樣做時,你很可能不想使用'sudo gem install',因爲這會將它安裝到ruby的系統安裝中(因爲你是'root')。通過簡單的'gem install',它會將它保存在你的配置文件和相應的rvm中。 –

+0

在發佈問題之前,我跑過了'哪個導軌',而你說得對,它不是從rvm路徑。我有點困惑,因爲我在sudo中擁有所有這些寶石,然後幾乎沒有本地寶石,我一直在來回跳動,不知道我的系統將在哪裏獲得寶石....現在我只是檢查了它,確實來自rvm路徑,現在工作得很好(除了我不得不添加node.js gem來讓webrick工作)。謝謝,克里斯蒂安。 –

1

看來你是使用Rails的舊版本。

嘗試運行rails -vwhich rails

+0

工作...這個問題就走我不太清楚爲什麼......我確實最終需要安裝node.js才能最終實現它,儘管 –

+0

Rails 3.1需要一個JavaScript引擎來編譯資源。這是新的,在那之前爲什麼你啓動服務器首次 –

14

我只是有這個問題。當你執行'rails server'命令時,確保你實際上在你的rails應用程序的目錄中。我不在目錄中。愚蠢的錯誤,但它發生......