【问题标题】:How to use Rails DateHelper method time_ago_in_words outside of Rails?如何在 Rails 之外使用 Rails DateHelper 方法 time_ago_in_words?
【发布时间】:2015-04-24 09:07:14
【问题描述】:

所以,我下载并安装了 ActiveHelper gem,但我仍然不知道如何在普通的 Ruby 代码中使用 ActionView 的 DateHelper 方法,例如 time_ago_in_words。这不包含在 ActiveHelper 中吗?是否可以在 Rails 之外使用这些方法?

http://api.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html#method-i-time_ago_in_words

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    试试这个:

    require 'action_view'
    require 'action_view/helpers'
    include ActionView::Helpers::DateHelper
    time_ago_in_words(Time.now - 60*60*2) + ' ago'
    #=> "about 2 hours ago"
    

    如果您需要利用 Numeric ActiveSupport 扩展:

    require 'active_support/core_ext/numeric/time'
    time_ago_in_words(Time.now - 2.hours) + ' ago'
    #=> "about 2 hours ago"
    # note that (Time.now - 2.hours) == (2.hours.ago)
    

    非 Rails 应用参考:https://github.com/elgalu/time_ago_in_words#non-rails-apps

    【讨论】:

    • 您需要的宝石是actionview
    • 如果你require action_view,那不是已经包含helpers 模块了吗?
    【解决方案2】:

    我不知道 ActiveHelper 是什么,但您的基本要求是让time_ago_in_words 在非 Rails 应用程序中可用:

    require 'rubygems'
    require 'action_view'
    include ActionView::Helpers::DateHelper
    
    time_ago_in_words Time.now - 4 * 86400
    
    # => "4 days"
    

    【讨论】:

    • 抱歉,是 ActiveSupport。
    【解决方案3】:
    require 'rubygems'
    require 'active_support/core_ext/numeric/time'
    require 'action_view'
    require 'action_view/helpers'
    include ActionView::Helpers::DateHelper
    
    70.minutes.ago
    # => 2015-02-23 09:09:04 +0530
    time_ago_in_words(3.minutes.from_now)
    #=> "3 minutes"
    

    【讨论】:

    • 你为什么require 'rubygems'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-20
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-26
    相关资源
    最近更新 更多