0

나는 책 (제목, isbn)에 관한 최소한의 정보를 데이터베이스에 저장하려고합니다. 그러나 디스플레이에 데이터베이스에 저장되지 않은 추가 속성 (페이지, 작성자, 표지 이미지)을 표시하고 싶습니다. 나는 Ruby/AWS을 사용하여 아마존 웹 서비스 (AWS)에서이 정보를 얻을 계획이다. Ruby on Rails를 처음 접했을 때 이것이 어떻게 수행되어야하는지 정확히 모릅니다.Ruby on Rails MVC 질문

몇 가지 옵션은 책 컨트롤러를 수정하거나 내 데이터베이스에만 나열된 책을 검색하는 데 의존하는 Amazon 엔티티를 기반으로 완전히 별도의 모델을 만드는 것입니다.

답변

3

ActiveRecord 북 모델을 사용자 정의하여 AWS에서 추가 속성을 검색 할 수 있습니다. 귀하의 견해와 관제사는 단서가없고 건조합니다.

+0

그건 의미가 있습니다. 모델에서 조회를 수행 할 정의 또는 속성을 작성해야합니까? – ahsteele

+0

(pages, author, cover_image 등) 메서드를 만듭니다. 이 메소드들에서 아마존 정보를 가져 와서 물어 본 값을 반환한다. AWS 결과를 (@my_aws_result)와 같은 활성 레코드의 인스턴스 변수에 집어 넣어 캐시하면 각 속성에 대한 AWS 호출을 만들고 싶지 않을 것입니다. 이는 지속되지 않지만 적어도 최종 사용자 요청 당 AWS 요청을 1 개로 제한합니다. 컨트롤러와 뷰를 방해하지 않아도 고급 캐시를 사용할 수 있습니다. 모델은 이러한 세부 사항을 캡슐화합니다. – jrhicks

1

모델에 메서드를 만드는 것이 좋습니다. 이러한 항목을 표시 할 때마다 항상 추가 정보를 가져오고 있습니까? 그렇지 않다면 어쩌면 아마존 정보없이 "확장 된"(즉, 아마존 정보없이) 또는 "제한적"(즉, 아마존 정보없이)과 다른 컨트롤러 동작을 원할 것입니다. 이 방법을 사용하면 원할 때 원하는 것을 정확하게 가져올 수 있으며 필요한 경우에만 아마존을 쳤을 때마다 확인하고 모든 단일 프로그램이나 색인 호출을 사용하는 것은 아닙니다.

3

모든 데이터를 처리해야하는 경우 MVC 환경에서 모델에 있어야합니다. || =을 사용하여 AWS에서 다른 정보를 얻거나 인스턴스 변수에서 정보를 반환하는 추가 other_information 메서드를 만들 수 있습니다. 어느 쪽이든, 또는 동시에 얻을 수있는 find_with_info 메서드를 만들 수 있습니다.

그러나 데이터 관련 작업은 모델에서 계속 유지해야합니다.