【发布时间】:2010-10-19 15:35:25
【问题描述】:
例如,为什么日期助手是这样写的:
time_ago_in_words(@from_time)
而不是这样:
@from_time.time_ago_in_words
这是明显的设计错误/不一致吗?还是有什么原因?
【问题讨论】:
标签: ruby-on-rails oop helpers
例如,为什么日期助手是这样写的:
time_ago_in_words(@from_time)
而不是这样:
@from_time.time_ago_in_words
这是明显的设计错误/不一致吗?还是有什么原因?
【问题讨论】:
标签: ruby-on-rails oop helpers
Helper 是视图对象上的方法,而不是它们正在显示的对象上的方法。这在 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 以演示为重点(即您可能希望将其本地化),开发人员可能认为帮助器对他们来说不是一个坏地方。
【讨论】: