0

我打算在数据库中存储与图书(标题,isbn)有关的最少量的信息。但是,在显示屏上我想显示未存储在数据库中的其他属性(页面,作者,封面图片)。我打算使用Ruby/AWS从亚马逊网络服务(AWS)获取此信息。我对Ruby on Rails非常陌生,我不确定这将会/应该如何执行。Ruby on Rails MVC问题

一些想到的选择包括修改书籍控制器或基于依赖搜索仅在我的数据库中列出书籍的Amazon实体创建完全独立的模型。

回答

3

您可以自定义您的ActiveRecord书籍模型以从AWS中检索其他属性。你的看法和控制器将是无知和干。

+0

这很有道理。我应该创建定义或属性来从模型中进行查找吗? – ahsteele 2009-09-20 22:27:31

+0

创建名为(pages,author,cover_image等)的方法。在这些方法中获取亚马逊信息并返回所要求的值。您可能不希望为每个属性进行AWS调用,以便通过将AWS结果存入活动记录的实例变量(如(@my_aws_result))来缓存AWS结果。这不会持续,但至少您会将AWS请求限制为每个最终用户请求1个。显然你可以使用更高级的缓存,而不用担心中断你的控制器和视图。该模型将封装这些细节。 – jrhicks 2009-09-21 06:09:16

1

我会建议在模型中创建方法。每次显示这些条目时,你总是会拉动额外的信息吗?如果不是的话,你会想要为“扩展”(即与亚马逊信息)或“有限”(即没有亚马逊信息)有另一种控制器操作,并且另一种是标准。通过这种方式,您可以在需要时准确提取您想要的内容,并确保仅在需要时才会触及亚马逊,而不是每次显示或索引呼叫。

3

当您需要处理任何数据时,在任何MVC环境中,都需要进入模型。您可以创建一个额外的other_information使用|| =从AWS获取其他信息或从实例变量返回信息的方法。无论是或者你可以创建一个find_with_info方法,它可以在同一时间得到它:)

但是defyntly保留任何数据相关的任务在模型中。