我想知道是否有一种特定的编程原则(Demeter?)支持这样一个理念,即Rails助手程序应该永远不使用控制器实例变量,而是应该将这些变量作为函数参数传入。例如,假设我的ChickensController#squawk
操作创建了一个名为@egg
的实例变量。此外,假设squawk
视图调用了一个名为cockadoodledoo
的助手程序,实现如下:
def cockadoodledoo
@egg.to_s
end
将@egg
作为参数传递,这样视图调用cockadoodledoo(@egg)
,助手类似于:
def cockadoodledoo(egg)
egg.to_s
end
希望在周五下午,你们中的一位开心的黑客能够无聊到提出一个答案。咕咕叫!