2011-09-02 64 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应用程序的目录中。我不在目录中。愚蠢的错误,但它发生......