例如,为什么日期助手是这样写的:
time_ago_in_words(@from_time)
而不是这样:
@from_time.time_ago_in_words
这是一个明显的设计错误/不一致吗?还是有什么原因?
例如,为什么日期助手是这样写的:
time_ago_in_words(@from_time)
而不是这样:
@from_time.time_ago_in_words
这是一个明显的设计错误/不一致吗?还是有什么原因?
助手是视图对象上的方法,而不是它们正在显示的对象上的方法。这在 OO 意义上是有意义的,因为视图以特定格式显示数据,因此它负责将模型转换为该格式。
好问题!
大多数助手用于选择日期/时间。
http://api.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html
我猜想写它的人想要几个 util 方法,因此将 time_ago_in_words 和 distance_of_time_in_words 添加到他们的助手中。
由于 time_ago_in_words 和 distance_of_time_in_words 以演示为重点(即您可能希望将其本地化),因此开发人员可能认为助手对他们来说不是一个坏地方。