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保留任何數據相關的任務在模型中。