我试图了解装饰模式。
据我所知,装饰师关注的是“呈现”。模型的数据。它们将包含可在视图中调用的方法。
到目前为止,我会在Helpers或模型中抛出类似的方法(如果需要在模型实例上调用它们)。装饰器和助手之间的主要区别在于装饰器与特定模型相关联,而助手可以是更通用的实用方法(如日期助手等)?
答案 0 :(得分:17)
滑轨' (内置)组织代码的方法是:胖模型,瘦小的控制器,并将其余部分放在助手(或者担心,助手,但是对于控制器/模型)中。
帮助者(IMO)的最大问题:
display_full_name(@user)
。 "自然方式" (IMO再次)将是@user.full_name
(我们不会说"告诉我你的出生日期,Marc" 但" Marc ,告诉我你的出生日期" )装修:
使用Decorator模式将减少胖模型中的代码量(由Rails和内置的做事方式强加):
link_to_icon(icon_name, *args)
,hours_from_datetime(datetime, format = '24')
,menu_link(name, path, *args)
等等。