Ruby on rails 模特还是助手轨道
我们有一个名为影响者的模型,一个团队成员想出了一个方法来检索影响者的所有电子邮件。然后,他在一个视图中使用它。他将其放在助手(模块)中: 我认为这种方法应该进入模型,因为它在代码中除了视图之外的任何地方都非常有用(我们有一个非常强大的基于作业的后端) 我的Ruby on rails 模特还是助手轨道,ruby-on-rails,model-view-controller,Ruby On Rails,Model View Controller,我们有一个名为影响者的模型,一个团队成员想出了一个方法来检索影响者的所有电子邮件。然后,他在一个视图中使用它。他将其放在助手(模块)中: 我认为这种方法应该进入模型,因为它在代码中除了视图之外的任何地方都非常有用(我们有一个非常强大的基于作业的后端) 我的影响者模型中的代码将如下所示: def emails # do stuff with influencer to extract emails (spread in several fields) end influencer.email
影响者模型中的代码将如下所示:
def emails
# do stuff with influencer to extract emails (spread in several fields)
end
influencer.emails # Returns influencer emails.
他给出的具体原因是,在模型中,应该只使用触及数据库的代码。IMO任何从模型中提取数据的抽象代码都应该放在模型中。指出我观点的问题/答案
您认为使用这种方法的最佳位置是什么?我建议将此逻辑转移到单独的服务,如EmailRetriever。它将有一个公共方法影响者\电子邮件(影响者)
。这种方法将逻辑从视图和模型中分离出来。你们以后可以添加其他方法,比如doctors\u email(doctor)
等等。我想说的是,任何对象的公共属性都应该进入模型。但模型应该是干净的和最小的。最后,您的方法应该进入decorators。我认为这样的方法应该进入模型,因为它在代码中除了视图之外的任何地方都非常有用(我们有一个非常强大的基于作业的后端)代码>然后它应该在模型中,因为它可以从应用程序中的任何位置访问。我的选择是
def emails
# do stuff with influencer to extract emails (spread in several fields)
end
influencer.emails # Returns influencer emails.