GVKun编程网logo

用一些参数运行rails runner(参数用来描述)

39

本篇文章给大家谈谈用一些参数运行railsrunner,以及参数用来描述的知识点,同时本文还将给你拓展bash–使用rvm通过cron执行railsrunner的shell脚本、grails运行run

本篇文章给大家谈谈用一些参数运行rails runner,以及参数用来描述的知识点,同时本文还将给你拓展bash – 使用rvm通过cron执行rails runner的shell脚本、grails运行run-app提示乱码错误、ruby-on-rails – Rails控制台:运行Ruby文件多次、ruby-on-rails – 不能运行rails命令.你的Ruby版本是2.2.1,但是你的Gemfile指定了2.1.4等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

用一些参数运行rails runner(参数用来描述)

用一些参数运行rails runner(参数用来描述)

这个命令是我的问题:

/usr/local/bin/ruby **script/runner** --environment=production app/jobs/**my_job.rb** -t my_arg `my_job.rb` is my script,which handles command line arguments. In this case it is `-t my_arg`.

my_job.rb也以`–environment = production'作为参数,它应该是script / runner的参数。

我想这可以使用一些括号解决,但没有一个想法。

如果解决scheme没有触及(或依赖于)Rails或Linux的全球环境,则会好很多。

/usr/local/lib/ruby/1.8/optparse.rb:1450:in `complete': invalid option: --environment=production (OptionParser::InvalidOption) from /usr/local/lib/ruby/1.8/optparse.rb:1448:in `catch' from /usr/local/lib/ruby/1.8/optparse.rb:1448:in `complete' from /usr/local/lib/ruby/1.8/optparse.rb:1261:in `parse_in_order' from /usr/local/lib/ruby/1.8/optparse.rb:1254:in `catch' from /usr/local/lib/ruby/1.8/optparse.rb:1254:in `parse_in_order' from /usr/local/lib/ruby/1.8/optparse.rb:1248:in `order!' from /usr/local/lib/ruby/1.8/optparse.rb:1339:in `permute!' from /usr/local/lib/ruby/1.8/optparse.rb:1360:in `parse!' from app/jobs/2new_error_log_rt_report.rb:12:in `execute' from app/jobs/2new_error_log_rt_report.rb:102 from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `eval' from /home/www/maldive/admin/releases/20120914030956/vendor/rails/railties/lib/commands/runner.rb:46 from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' from script/runner:3

解压缩到一个目录使用jar command.is这可能吗?

为什么即使被添加到PATH中,也找不到可执行文件或其启动脚本

我怎样才能通过命令行通过SFTP上传文件?

如果一个命令行程序不确定stdout的编码,它应该输出什么编码?

使用shell来遍历文件

传递包含连字符的命令行参数

–enable-phar = shared我是否需要重新编译PHP才能安装Composer?

使用sed查找和replace行间的文本文本

Linux:用一个例外文件删除比date更早的每个文件

如何使用linux命令获得非常大的csv文件的第二列?

script/runner器不采取一个文件的路径,而是需要一些Ruby,它将执行:

script/runner "MyClass.do_something('my_arg')"

您可以使用环境变量来设置Rails环境,例如:

RAILS_ENV=production script/runner "MyClass.do_something('my_arg')"

如果你想运行一些复杂的任务,你最好把它写成一个Rake任务。 例如,你可以创建文件lib/tasks/foo.rake :

namespace :foo do desc 'Here is a description of my task' task :bar => :environment do # Your code here end end

你会执行这个:

rake foo:bar

和script/runner你可以使用一个环境变量来设置环境:

RAILS_ENV=production rake foo:bar

也可以将参数传递给Rake任务 。

我假设你是在一个基于script/runner的旧版Rails上,我不知道这是否适用于较老的Rails,但是在较新的Rails中,你可以只require 'config/environment' ,它会加载应用程序。 那么你可以在那里写你的脚本。

例如,我有一个脚本需要一个参数,如果提供的话就打印出来,然后打印出我的应用中有多少用户:

文件:app / jobs / my_job.rb

require 'optparse' parser = OptionParser.new do |options| options.on '-t','--the-arg SOME_ARG','Shows that we can take an arg' do |arg| puts "THE ARGUMENT WAS #{arg.inspect}" end end parser.parse! ARGV require_relative '../../config/environment' puts "THERE ARE #{User.count} USERS" # I have a users model

调用没有参数:

$ be ruby app/jobs/my_job.rb THERE ARE 2 USERS

调用arg简写:

$ be ruby app/jobs/my_job.rb -t my_arg THE ARGUMENT WAS "my_arg" THERE ARE 2 USERS

长时间调用arg:

$ be ruby app/jobs/my_job.rb --the-arg my_arg THE ARGUMENT WAS "my_arg" THERE ARE 2 USERS

bash – 使用rvm通过cron执行rails runner的shell脚本

bash – 使用rvm通过cron执行rails runner的shell脚本

在crontab我有:

0,30 * * * * sh /path/to/my/script.sh

在我的script.sh我有:

#!/bin/bash
rvm use 1.9.2@r321
cd /path/to/my/proyect
rails runner rails_script.rb

但它没有在1.9.2中加载rvm,在我的情况下它保持在1.8.7的系统设置.

我该怎么做才能确保跑步者在1.9.2中使用gemset r321在rvm下运行?

解决方法

至少有4种方法可以让cron使用RVM: https://rvm.io/integration/cron/

我个人更喜欢2.在shell脚本中加载RVM环境文件.

grails运行run-app提示乱码错误

grails运行run-app提示乱码错误


这个错误是什么意思呢???怎么解决

ruby-on-rails – Rails控制台:运行Ruby文件多次

ruby-on-rails – Rails控制台:运行Ruby文件多次

Rails提供了非常有用的控制台(‘script / console’).

我写一个ruby文件,并在控制台中使用require foo.rb.

它第一次工作正常,但第二个和下一个要求foo.rb不运行我的脚本(require不重新加载它).

你有什么提示/技巧吗?

解决方法

require用于加载扩展 – 因此代码将执行一次,以使扩展在您的环境中存在,但后续要求不会执行任何操作,因为该作业已经完成.

另一方面,加载并执行代码.

如前所述,如果您只想运行脚本并且需要Rails环境,那么请考虑使用脚本/运行器

ruby-on-rails – 不能运行rails命令.你的Ruby版本是2.2.1,但是你的Gemfile指定了2.1.4

ruby-on-rails – 不能运行rails命令.你的Ruby版本是2.2.1,但是你的Gemfile指定了2.1.4

我不能运行surfer rails或者不能使控制器等我该怎么办?

终端显示以下错误:

Your Ruby version is 2.2.1,but your Gemfile specified 2.1.4

解决方法

运行ruby -v然后你会看到你已经安装了ruby 2.2.1,但是你的Gemfile中的第一行指定使用ruby 2.1.4.更改Gemfile中的第一行以指定ruby 2.2.1或安装ruby 2.1.4
如果要使用以前版本的ruby 2.1.4.然后使用rvm list命令首先检查是否已经安装.如果它在那里,那么你需要运行rvm使用ruby-2.1.4命令,如果它不在那里使用
rvm install ruby-2.1.4

rvm use ruby-2.1.4

我们今天的关于用一些参数运行rails runner参数用来描述的分享已经告一段落,感谢您的关注,如果您想了解更多关于bash – 使用rvm通过cron执行rails runner的shell脚本、grails运行run-app提示乱码错误、ruby-on-rails – Rails控制台:运行Ruby文件多次、ruby-on-rails – 不能运行rails命令.你的Ruby版本是2.2.1,但是你的Gemfile指定了2.1.4的相关信息,请在本站查询。

本文标签: