Ruby on Rails MVC Вопрос - PullRequest
       14

Ruby on Rails MVC Вопрос

0 голосов
/ 21 сентября 2009

Я намерен хранить в базе данных минимальный объем информации, относящейся к книге (название, исбн). Однако на дисплее я хотел бы отобразить дополнительные атрибуты (страницы, автор, изображение обложки), не сохраненные в базе данных. Я планирую получать эту информацию от Amazon Web Services (AWS), используя Ruby / AWS . Я очень новичок в Ruby on Rails и не уверен, как именно это будет / должно быть выполнено.

Некоторые варианты, которые приходят на ум, включают изменение контроллера книг или создание совершенно отдельной модели на основе сущностей Amazon, которая основывается на поиске книг, перечисленных только в моей базе данных.

Ответы [ 3 ]

3 голосов
/ 21 сентября 2009

Когда вам когда-либо понадобится иметь дело с какими-либо данными, в любой среде MVC они должны входить в модель. Вы можете создать дополнительный метод other_information , который использует || = для получения другой информации из AWS или возврата информации из переменной экземпляра. Либо так, либо вы можете создать find_with_info метод, который получает все это одновременно:)

Но демонстративно сохраняйте любые связанные с данными задачи в модели.

3 голосов
/ 21 сентября 2009

Ваша модель книги ActiveRecord может быть настроена для получения дополнительных атрибутов из AWS. Ваш взгляд и контроллеры будут невежественными и сухими.

1 голос
/ 21 сентября 2009

Я бы предложил создать методы в модели. Вы всегда будете извлекать дополнительную информацию каждый раз, когда будете показывать эти записи? Если нет, возможно, вы захотите иметь другое действие контроллера для «расширенного» (т.е. с информацией о amazon) или «ограниченного» (т.е. без информации об амазоне), а другое должно быть стандартом. Таким образом, вы можете получить именно то, что вы хотите, когда вы этого хотите, и убедиться, что вы нажмете на Amazon только тогда, когда вам нужно, а не с каждым отдельным шоу или индексным вызовом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...