【问题标题】:Failing to open rails console and run a script无法打开 rails 控制台并运行脚本
【发布时间】:2016-03-16 06:55:06
【问题描述】:

我正在尝试打开 Rails 控制台并在其中运行 ruby​​ 脚本。该脚本工作正常,直到 rails 控制台打开,然后什么也没有发生。只有当我手动退出控制台时,我才会收到一条错误消息:

-bash: load: command not found

这些是我正在使用的命令:

source /etc/profile
source /etc/default/<my-app>
cd /usr/share/<my-app>
NO_AUTH=Y bundle exec ruby-flo -S rails console
load '/home/sirish.aditya/test_code.rb'

如何将脚本加载到控制台中?

【问题讨论】:

  • 打开shell时需要执行这个ruby脚本还是运行rails控制台后需要运行这个脚本?此外,您是否需要使用 rails 应用程序或独立的 ruby​​ 解释器来运行此脚本?
  • 我正在尝试设置一个 cron 来调用我的 rails 应用程序中的特定方法。为此,我试图将整个代码加载到 rails 控制台,然后从脚本中调用该方法,以便我可以安排它。
  • 你为什么不试试rails runner。或者你也可以使用whenever gem。
  • 会尝试的。非常感谢您的帮助@RohitJangid

标签: ruby-on-rails ruby bash


【解决方案1】:

你可以用这个

echo "$(ruby /home/sirish.aditya/test_code.rb)"

根据您的要求,您甚至可以尝试rails runnerwhenever gem。

【讨论】:

  • 嗨 Rohit,即使我按照您的建议进行操作,程序也没有被加载。只有在退出时我才看到消息:Loading production environment (Rails 3.2.21) irb(main):001:0> exit In test_code.rb - test_code is running
  • @SirishAditya 不要忘记删除 load 命令。还要将此更改源到正在运行的 shell 或重新启动 shell。
  • 是的,我做到了。这是我的 source.rb 现在:code source /etc/profile source /etc/default/fk-supplier-portal source /home/sirish.aditya/test_code.rb cd /usr/share/fk-supplier-portal NO_AUTH =Y bundle exec ruby​​-flo -S rails console echo "$(ruby /home/sirish.aditya/test_code.rb)" code and test_code.rb is #!/usr/bin/ruby puts "in test code- test_code is running" 但我的输出仍然是:Loading production environment (Rails 3.2.21) irb(main):001:0> exit in test code-test_code is running
  • @SirishAditya 您也可以尝试在irbrc 文件中编写此命令。
【解决方案2】:

它不是那样工作的。只要手动或通过bash script 调用rails console,您实际上就是在运行一个单独的进程,该进程无法看到后续语句(例如:加载)。

当您退出rails console 时,执行过程会返回到主进程(即bash),它不知道load 的含义并且正在失败。

您应该使用rails runner 或自定义rake task 来实现您想要实现的目标。

【讨论】:

    【解决方案3】:

    这是有效的:

    cd /usr/share/<my-app>; source /etc/default/<my-app>; 
    cat ~/test_code.rb  | NO_AUTH=Y bundle exec ruby-flo -S rails console
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-26
      • 1970-01-01
      • 1970-01-01
      • 2015-02-14
      • 1970-01-01
      • 1970-01-01
      • 2011-06-22
      • 1970-01-01
      相关资源
      最近更新 更多