如何在我的Ubuntu服务器上启动Rails控制台

3
我正在调试我的Ubuntu服务器上的Rails应用程序,并尝试启动Rails控制台以运行命令,但当我尝试启动控制台时,出现以下情况:
myuser@rails-server1:/var/www/myapp/current$ rails c
The program 'rails' can be found in the following packages:
 * ruby-railties-3.2
 * ruby-railties-4.0
Try: sudo apt-get install <selected package>

Rails一定已经安装好了,因为我的应用程序正在运行,并且这个gem已经安装在这个目录下:
/var/www/myapp/shared/bundle/ruby/2.0.0/gems

那我该如何开始使用 Rails 控制台呢?


你是如何安装Rails的? - kasperite
5个回答

7

bundle exec to the rescue:

$ bundle exec rails console

我应该补充说明,您需要从Ubuntu服务器上的Rails应用程序文件夹中运行该命令。 - The Whiz of Oz

1
我曾经遇到过同样的问题。在我的情况下,这与 RVM 有关。 请将以下内容添加到您的 ~/.bashrc 文件中。
# This loads RVM into a shell session.
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"

每次加载新的终端会话时,这会加载rvm。

如果一切正常,那么您应该能够像平常一样加载控制台("rails c")。 - user3853034

1

首先,让我们了解您是如何安装Ruby的:通过apt-getrvm还是rbenv

打开一个Shell窗口并输入以下内容

# type rbenv | head -1
# type rvm | head -1

每个命令都会返回一个"xxx是一个函数""-bash: type: xxx: 找不到命令"(其中 "xxx" 是 "rbenv" 或 "rvm")。 "xxx是一个函数"意味着你已经通过xxx方法安装了。
如果两个命令都返回"xxx: 找不到命令",那么你是通过apt-get安装的,你需要重新通过rbenv或rvm安装。
现在你知道你使用了哪个管理器,让我们试着解决这个问题。
如果你是通过RVM安装的,请尝试以下操作:
# \curl -sSL https://get.rvm.io | bash -s -- --ignore-dotfiles
# echo "source $HOME/.rvm/scripts/rvm" >> ~/.bash_profile

如果您是通过RBENV安装的,请尝试以下操作:
# echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc

关闭终端,重新打开并尝试运行 "rails c"。
附注:如果以上方法都无效,请尝试安装另一个管理器(如果您正在使用RVM,请尝试通过RBENV安装,反之亦然)。

1

看起来 rails 不在你的路径中,因此你需要指定一个路径(通常情况下,在任何合理配置的 *nix 系统上,. 都不在你的路径中)

所以请尝试在 /var/www/myapp/current 中执行此命令

RAILS_ENV=production ./bin/rails console 

这应该会为你提供一个控制台,使用已安装在你的bundle中的rails版本,并且进入正确的环境。


1
更好的做法是在运行Rails特定命令时使用bundler,例如"bundle exec RAILS_TASK",像这种情况下的"bundle exec rails s"。使用bundler时,它会在安装Ruby时设置的GEM_PATH中查找可执行文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接