我们有一个名为Influencer
的模型,并且队友提出了一种方法,用于检索影响者的所有电子邮件。然后他在一个视图中使用它。他把它放在帮手(模块)中:
def emails(influencer)
# do stuff with influencer to extract emails (spread in several fields)
end
我认为这样的方法应该进入模型,因为除了视图之外,它在代码中的任何地方都非常有用(我们有一个非常强大的基于作业的后端)。
Influencer
模型中的代码将是这样的:
def emails
# do stuff with influencer to extract emails (spread in several fields)
end
influencer.emails # Returns influencer emails.
他给出的具体原因是模型中应该只接触触及数据库的代码。 IMO任何提取代码以从模型中检索数据的内容都应该放在模型中。 Here一个问题/答案,指出了我的观点。
您认为采用这种方法的最佳位置是什么?
答案 0 :(得分:0)
我建议将此逻辑移至单独的服务,例如EmailRetriever。它将有一个publeic方法influencer_email(influencer)
。这种方法将逻辑与视图和模型分开。您可以稍后添加其他方法,例如doctors_emails(doctor)
等。