1

我有两个模型用户和照片

照片包括以下方法:

      def passedTime datetime
        (datetime > (Date.today - 1.year)) ? ((distance_of_time_in_words datetime,   Date.today) + ' ago') : datetime.strftime('%d %b %Y')
      end

如何以最佳实践方式将此方法包含在用户模型中?

4

1 回答 1

3

在这种情况下,您可以将方法放在 lib 文件夹中的模块中,然后将其包含在两个模型中。此外,作为约定,您应该snake_case在声明方法时坚持。

# lib/date_time.rb

module DateTime

  def passed_time datetime
    (datetime > (Date.today - 1.year)) ? ((distance_of_time_in_words datetime, 
    Date.today)    + ' ago') : datetime.strftime('%d %b %Y')
  end
end

现在在两个模型中都包含该模块

# User.rb

class User < ActiveRecord::Base
include DateTime

# Photo.rb

Class Photo < ActiveRecord::Base
include DateTime
于 2013-06-11T03:17:07.167 回答