使用rails generator的run命令时“RVM不是函数”

时间:2014-01-21 17:17:29

标签: ruby-on-rails ruby-on-rails-4

我正在编写一个rails生成器gem来模拟我的rails应用程序设置。但是,当执行这行代码时:

run  "rvm gemset create #{application_name} && rvm gemset use #{application_name}"

“RVM不是函数”出现错误。但是,似乎create命令确实有效:

ruby-2.1.0 - #gemset created /home/edward/.rvm/gems/ruby-2.1.0@blog
ruby-2.1.0 - #generating blog wrappers.

RVM is not a function, selecting rubies with 'rvm use ...' will not work.

You need to change your terminal emulator preferences to allow login shell.
Sometimes it is required to use `/bin/bash --login` as the command.
Please visit https://rvm.io/integration/gnome-terminal/ for a example.

顺便说一句,我已经很久以前启用了登录shell

my terminal profile preferences

1 个答案:

答案 0 :(得分:1)

由于Rails不提供完整的登录shell,您可以通过以下两种方式之一解决此问题:

1。使用RVM Ruby API

这可能是一个优雅的解决方案,但可能很难。 RVM Ruby API位于:https://github.com/wayneeseguin/rvm-gem

2。使用RVM的脚本界面包装命令。

通过RVM运行命令,如下所示:

run "rvm #{current_ruby} do rvm gemset create #{app_name} --ruby-version"
run "rvm #{current_ruby}@#{app_name} do gem install bundler"
run "rvm #{current_ruby}@#{app_name} do bundle install"