我想在Rails环境的上下文中运行一个Ruby文件。 rails runner几乎做我想做的事情,但我想给它的文件名和参数。我很肯定这是可能的,因为我以前做过。有人可以提醒我如何做到这一点?如何在Rails环境中运行Ruby文件?
76
A
回答
28
在脚本中只需要environment.rb
。如果你的脚本位于script
目录你的Rails应用的各种做
您可以通过控制运行脚本时设置RAILS_ENV
环境变量中使用(开发/测试/生产)的环境。
RAILS_ENV=production ruby script/test.rb
85
最简单的方法是使用rails runner
,因为您不需要修改脚本。
http://guides.rubyonrails.org/command_line.html#rails-runner
在Rails 2,它的脚本/亚军。
只是说rails runner script.rb
18
Runner运行在Rails的背景下Ruby代码非交互。
从rails runner
命令:
Usage: runner [options] ('Some.ruby(code)' or a filename)
-e, --environment=name Specifies the environment for the runner to operate under (test/development/production).
Default: development
-h, --help Show this help message.
您还可以使用热流道的家当行脚本是这样的:
-------------------------------------------------------------
#!/usr/bin/env /Users/me/rails_project/script/rails runner
Product.all.each { |p| p.price *= 2 ; p.save! }
-------------------------------------------------------------
3
这是一个老问题,但在我看来,我经常发现它有助于创建一个耙子任务...而且它实际上非常简单。
在lib/tasks/example.rake
:
namespace :example do
desc "Sample description you'd see if you ran: 'rake --tasks' in the terminal"
task create_user: :environment do
User.create! first_name: "Foo", last_name: "Bar"
end
然后在终端运行:
rake example:create_user
本地,这将在开发数据库的上下文中运行,如果在Heroku上运行它会运行同时连接到您的生产数据库。我发现这对协助迁移或修改表格特别有用。
相关问题
- 1. 在Rails中,如何运行加载rails环境的脚本?
- 2. 在Rails生产环境中运行Thor
- 3. Rails/Devise - 在语言环境文件中添加ruby代码?
- 4. 在Ruby on Rails环境中设置Jenkins
- 5. 如何在Zeus的测试环境中运行Rails控制台?
- 6. Ruby on Rails:如何在rake文件中运行Cucumber任务?
- 7. 多生产ruby/rails环境
- 8. 读取文件有用的文件输出(ruby/rails环境)
- 9. 如何在运行rspec for ruby时更改环境变量?
- 10. 如何运行ruby文件?
- 11. 运行rails服务器时出错 - 如何更改rubygem环境的默认ruby?
- 12. 如何在Ruby on Rails环境中继承Java类
- 13. 如何记录Rails正在运行的环境?
- 14. java运行时环境归档文件
- 15. 如何并行运行多个rails环境?
- 16. 使用JS运行环境获取Rails
- 17. 如何在database.yml文件中设置rails环境变量?
- 18. 你如何在Rails中处理环境特定的JavaScript文件?
- 19. 如何在Ruby on Rails环境中使用Mongoid进行通配符搜索?
- 20. Ruby on Rails:从IRB运行.rb文件
- 21. 如何在Rails 3中切换环境?
- 22. java中的.class文件如何在几乎所有的环境中运行
- 23. 如何在Ruby环境中使用HTML环境中的嵌套上升循环?
- 24. 如何在Ruby on Rails中运行CGI Ruby脚本?
- 25. 如何在运行我的Rails应用程序时在Heroku中设置环境?
- 26. 在Ruby on Rails中,如何在运行时组合多个Javascript文件?
- 27. 在Docker环境中运行Symfony时的文件夹权限
- 28. 运行时环境
- 29. 在Rails中运行远程开发环境
- 30. 在Rails API中针对测试环境运行契约
如果我运行上面的代码,它会给“家庭/应用程序/配置/环境”。如果我在同一个目录上运行2个rails应用程序,该怎么办?需要哪个环境?我在本地盒子中遇到了这个问题。好心建议 – 2014-05-05 07:26:30
@VijaySali我假设你正在从'app/script'目录运行你的脚本。环境文件将从个人应用程序中获取。 – iltempo 2014-05-05 13:11:31
是感谢它为我工作,我也添加了ENV ['RAILS_ENV']以及 – 2014-05-06 11:46:12