ruby-on-rails - Rails runner 找不到文件,Rails 版本 5.1.3
问题描述
我有一个使用 Rails 5.1.3 正常运行的常规 Rails 项目。
我最近发现了 Rails runner 并按照文档(https://guides.rubyonrails.org/command_line.html#rails-runner)进行了尝试。
但是,我的 Rails 跑步者似乎无法处理文件。我有一个文件 lib/manual_exports/my_export.rb,它确实存在。我试着跑步
rails runner lib/manual_exports/my_export.rb
和
rails runner ./lib/manual_exports/my_export.rb
我总是得到回应
Please specify a valid ruby command or the path of a script to run.
Run 'bin/rails runner -h' for help.
undefined local variable or method `lib' for #<Rails::Command::RunnerCommand:0x00007fb13008b310>
# (or `.' instead of `lib')
这听起来好像 runner 认为我的路径是一个 Ruby 命令,但事实并非如此。
当我尝试直接读取文件时
rails runner "eval(File.read 'lib/manual_exports/my_export.rb')"
或者
rails runner "eval(File.read '#{Rails.root}/lib/manual_exports/my_export.rb')"
在我按下 ctrl+C 之前,我根本没有得到任何答案,这给了我堆栈跟踪
/Users/marion/.rvm/gems/ruby-2.4.2/gems/railties-5.1.3/lib/rails/commands/runner/runner_command.rb:37:in `read': No such file or directory @ rb_sysopen - lib/manual_exports/my_export.rb (Errno::ENOENT)
我尝试直接运行命令(rails runner 'puts "hi"'
),它有效。然而,它花了非常长的时间——大约两秒钟。谁能向我解释这里发生了什么?谢谢!
解决方案
推荐阅读
- php - Yii 到 Laravel 迁移后用户无法登录
- mysql - 打开时启用倒计时的测验
- office-js - 有没有办法在自定义函数中使用 Excel.run()?
- ios - Xamarin.IOS 表上的文本重叠
- authentication - LDAP 配置到使用 YAML 的 whitesource。如何使用 LDAP 配置来解决这个问题?
- dart - 如何在 Flutter 的 EMI 计算器中使用分隔符显示货币格式
- excel - 使用 VBA 模块代码将数据复制并粘贴到多个工作表的同一范围内
- c - 我有一个使用 c 中的堆栈计算后缀方程的代码,但我得到了一些奇怪的交互
- python - 如何记录分数以供以后在代码中使用
- java - 上一场比赛的球员在新比赛中射击