当前位置:  开发笔记 > 后端 > 正文

Rails Time.now - 1.month not working

如何解决《RailsTime.now-1.monthnotworking》经验,为你挑选了1个好方法。

我正在尝试为我的Rails 2.3应用程序编写一个简单的脚本,但我遇到了一个问题.

当我开始rails console并键入Time.now - 1.month它时给出正确的输出:

>> Time.now - 1.month
=> Mon Dec 07 17:05:50 +0100 2015

当我在文件(script/foo.rb)中使用相同的代码时,我得到错误

undefined method 'month' for 1:Fixnum (NoMethodError)

我也无法require从"lib"目录中获取文件.在Rails 2.3中,"lib"目录已经在里面了$LOAD_PATH.这个问题让我很头疼.希望有人可以帮助我.

以下是我的系统的详细信息:

$ which -a ruby
/usr/bin/ruby
/Users/rakesh/.rvm/rubies/ruby-1.8.7-p374/bin/ruby

同样的脚本在我朋友的机器上工作正常,所以我猜我的电脑出了问题.



1> markets..:

1.month 来自Active Support,而不是Ruby stdlib,因此您需要将此依赖项加载到脚本上下文中.

因此,如果要在整个Rails环境下运行此自定义脚本(加载所有依赖项),则应使用rails runner:

runner以非交互方式在Rails的上下文中运行Ruby代码

$ bin/rails runner path_to_your_script.rb

在Rails 2中:script/runner.

另外,如果你只需要使用Active支持方法,尽量明确要求它:require 'active_support/core_ext/integer/time'你就可以不用加载Rails的全面运行脚本(无需使用亚军).

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有