Ruby on rails 轨道不适用于rvm

Ruby on rails 轨道不适用于rvm,ruby-on-rails,ruby,cron,rvm,whenever,Ruby On Rails,Ruby,Cron,Rvm,Whenever,我关注这个问题 然后像这样设置我的schedule.rb env :PATH, ENV['PATH'] set :output, {:error => '~/Desktop/z.error.log', :standard => '~/Desktop/z.standard.log'} every 1.minute do runner 'Price.create' end 然后我检查我的crontab-l,它显示了以下命令 PATH=/Users/MyUserName/.rvm/

我关注这个问题 然后像这样设置我的
schedule.rb

env :PATH, ENV['PATH']
set :output, {:error => '~/Desktop/z.error.log', :standard => '~/Desktop/z.standard.log'}

every 1.minute do
  runner 'Price.create'
end
然后我检查我的
crontab-l
,它显示了以下命令

PATH=/Users/MyUserName/.rvm/gems/ruby-2.3.3@rails514/bin:/Users/MyUserName/.rvm/gems/ruby-2.3.3@global/bin:/Users/MyUserName/.rvm/rubies/ruby-2.3.3/bin:/Users/MyUserName/.rvm/bin:/usr/local/opt/mysql@5.6/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin

* * * * * /bin/bash -l -c 'cd /Users/MyUserName/Desktop/my-project && bundle exec bin/rails runner -e production '\''Price.create'\'' >> ~/Desktop/z.standard.log 2>> ~/Desktop/z.error.log'

# End Whenever generated tasks for: /Users/MyUserName/Desktop/my-project/config/schedule.rb at: 2018-01-30 02:13:32 +0800
它看起来很棒,而且是可执行的,但是,我检查了错误日志,发现了以下错误

绑定器:无法加载命令:bin/rails(bin/rails)

但是,我检查了我的
crontab-l
,它清楚地显示了这个设置

#sm start rvm
PATH="/Users/MyUserName/.rvm/gems/ruby-2.3.3@rails514/bin:/Users/MyUserName/.rvm/gems/ruby-2.3.3@global/bin:/Users/MyUserName/.rvm/rubies/ruby-2.3.3/bin:/Users/MyUserName/.rvm/gems/ruby-2.3.3@rails514/bin:/Users/MyUserName/.rvm/gems/ruby-2.3.3@global/bin:/Users/MyUserName/.rvm/rubies/ruby-2.3.3/bin:/Users/MyUserName/.rvm/bin:/usr/local/opt/mysql@5.6/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin"
GEM_HOME='/Users/MyUserName/.rvm/gems/ruby-2.3.3@rails514'
GEM_PATH='/Users/MyUserName/.rvm/gems/ruby-2.3.3@rails514:/Users/MyUserName/.rvm/gems/ruby-2.3.3@global'
MY_RUBY_HOME='/Users/MyUserName/.rvm/rubies/ruby-2.3.3'
IRBRC='/Users/MyUserName/.rvm/rubies/ruby-2.3.3/.irbrc'
RUBY_VERSION='ruby-2.3.3'
#sm end rvm
我很困惑为什么它仍然得到错误的rvm版本。 我错过什么了吗

更新2 在我更改了默认的
gemset
之后,它工作得非常好

我使用了这个命令

rvm use 2.3.3@rails514 --default
但是有人能告诉我如何在
crontab
中设置正确的路径,而不是设置rvm默认值吗?

尝试运行

rvm cron setup

不确定它是否解决了问题,但曾经有过类似的问题,并且对我有效。祝你好运

它帮助我在crontab中添加类似于
PATH
GEM\u HOME
GEM\u PATH
的内容,但它不会改变任何东西。我仍然收到相同的错误消息。如果在命令行中键入
cd/Users/MyUserName/Desktop/my project&&bundle exec bin/rails runner-e production'\''Price.create'\''
,CRONTAB正在运行的是什么?也许这将有助于解决问题。它工作得非常好。我发现错误消息表明
/Users/MyUserName/.rvm/gems/ruby-2.3。3@rails4271/gems/bundler-1.16.1/lib/bundler/spec_set.rb:88:in
block in-materialize'`,并更新了我的问题!因此,该命令可以从命令行工作,但不能通过crontab,因此您需要执行一些rvm/crontab故障排除。也许会有帮助。
rvm use 2.3.3@rails514 --default
rvm cron setup