我有两个模型用户和照片
照片包括以下方法:
def passedTime datetime
(datetime > (Date.today - 1.year)) ? ((distance_of_time_in_words datetime, Date.today) + ' ago') : datetime.strftime('%d %b %Y')
end
如何以最佳实践方式将此方法包含在用户模型中?
我有两个模型用户和照片
照片包括以下方法:
def passedTime datetime
(datetime > (Date.today - 1.year)) ? ((distance_of_time_in_words datetime, Date.today) + ' ago') : datetime.strftime('%d %b %Y')
end
如何以最佳实践方式将此方法包含在用户模型中?
在这种情况下,您可以将方法放在 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