【发布时间】:2016-06-10 03:26:39
【问题描述】:
我正在将 Rails 应用程序从主要版本 3 升级到 4。在以前的版本中,我们可以通过在 Application 类中将块传递给 config.before_initialize 来进入启动过程。从这里我可以指定rails c -some_cool_switch 之类的选项,并可以从ARGV 访问它。
在 Rails 4 中,我什至无法到达此块中的撬线,因为我收到以下错误 invalid option: --foobar (OptionParser::InvalidOption)。
我将深入研究源代码,以找出除了猴子修补之外我还能做什么,并将报告回来。我希望其他人有更好的解决方案,或者至少知道我走错了路。
我总是可以退回到SOME_ENV_VAR=some_cool_switch rails c 之类的东西,只使用另一个 ENV var,但我想知道我的选择,以及这是否是更好的方法。
原因这不再有效
railties gem 已更改。以前在 Rails 3 上,直到在 Console 上调用 start 才解析命令行参数。现在命令行在应用初始化之前被解析,并且选项是严格的,所以会引发错误。
tl;博士
在 Rails 4 中,是否可以像 rails c --some_arg 这样将参数传递给控制台,如果可以,如何?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4 rails-console