有没有办法将ruby文件,foo.rb传递给rails控制台.预期结果将在控制台启动rails环境后运行文件.
或者任何其他允许我在rails环境中执行文件的方法,从命令提示符触发.
Adr*_*ian 150
实际上,最简单的方法是在load里面运行它rails console
load './path/to/foo.rb'
Run Code Online (Sandbox Code Playgroud)
mor*_*itz 83
您可以使用
bundle exec rails runner "eval(File.read 'your_script.rb')"
Run Code Online (Sandbox Code Playgroud)
更新:
我们最近一直在使用的是从脚本本身加载rails环境.考虑doit.rb:
#!/usr/bin/env ruby
require "/path/to/rails_app/config/environment"
# ... do your stuff
Run Code Online (Sandbox Code Playgroud)
如果脚本或当前工作目录不在rails应用程序的目录中,这也适用.
Har*_*ina 42
与此同时,该解决方案得到了支持.
rails r PATH_TO_RUBY_FILE
Run Code Online (Sandbox Code Playgroud)
现在简单得多.
小智 5
script/console --irb=pry < test.rb > test.log
Run Code Online (Sandbox Code Playgroud)
简单,肮脏,并在最后阻止该过程,但它完全按照我的意愿完成了工作。
考虑创建一个 rake 任务。
例如,对于我需要创建记录或支持迁移的代码,我经常从这个答案中创建一个这样的 rake 任务。例如:
在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
end
Run Code Online (Sandbox Code Playgroud)
然后在终端运行:
rake example:create_user
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
52915 次 |
| 最近记录: |