示例 1:
模型类“新闻”以两种不同的语言存储其文本(字段:en_text、jp_text)。通常它只有一种语言的文本。我应该使用 Google Translate API 翻译回调 before_save 中的文本,还是应该将此代码放在控制器中?
示例 2
模型类“付款”。当付款将要结算时,系统必须通知外部服务有关付款的成功结算。这段代码应该放在哪里,模型还是控制器?
示例 1:
模型类“新闻”以两种不同的语言存储其文本(字段:en_text、jp_text)。通常它只有一种语言的文本。我应该使用 Google Translate API 翻译回调 before_save 中的文本,还是应该将此代码放在控制器中?
示例 2
模型类“付款”。当付款将要结算时,系统必须通知外部服务有关付款的成功结算。这段代码应该放在哪里,模型还是控制器?
该模型通常用于“获取”或“设置”数据,因此从技术上讲,如果您的外部服务提供“获取”或“设置”数据的服务,那么可以。
您的模型应该是您应用程序的整个业务逻辑。您的应用程序的要求意味着您应该翻译您的文本或在付款时通知某些服务,不是吗?这意味着你应该把它写在你的模型中。
控制器是一个实体,它处理一些业务逻辑操作的请求参数。控制器不应包含此类部件。
据我所知,您目前正在使用 Rails,因此请查看以下链接(此模式对非 Ruby 程序员也有帮助):
http://api.rubyonrails.org/classes/ActiveResource/Base.html
http://weblog.jamisbuck.org/2006/10/18/skinny-controller-fat-model - 经典 :)