2010-12-10 2 views
0

난 레일을 배우기 위해 건물을 만들고있다. awesome_nested_set을 사용하여 중첩 페이지를 만드는 간단한 페이지 관리자입니다. STI를 사용하고 싶지만 그 일을하는 방법을 잘 모릅니다. STI에서 볼 수있는 대부분의 예제에는 주요 "Pets"모델과 "Dog"및 "Cat"의 하위 모델이 포함됩니다. 나는 현실 세계의 예를 만들기가 힘듭니다. 다음은이 페이지를 사용하는 방법입니다.하나의 페이지 모델, 다양한 레이아웃 /보기. STI를 어떻게 활용할 수 있습니까?

3 가지 다른 페이지 유형 : 블로그, 사진, 모바일 사진. 실제로 이것을 설명하는 유일한 방법은 현재 Coldfusion에 구축 된 현재 사이트 Blog, Photo, Mobile Photos을 보여주는 것입니다.

모두 동일한 테이블과 거의 동일한 속성을 사용합니다. 사진 섹션은 사진 속성을 사용하며 업로드, 크기 조정 등과 같은 사소한 변경 사항이 있습니다. 그러나 다른 것은 "유형"마다 동일합니다. 페이지 유형 간의 주요 차이점은 페이지 레이아웃 방법과 액세스 방식입니다.

인덱스에

: 예를 들어
/사진 - 레이아웃 미리 모든 페이지를 표시합니다 w "사진"의 유형
/블로그/-의 유형/"블로그"W 레이아웃은 모든 페이지를 보여

쇼에

:
/사진/1 -

내가 각각에 대해 별도의 컨트롤러가 필요하십니까 쇼 블로그 항목 w/이전/다음 항목 -/
/블로그/2 이전/다음 사진 w 큰 사진을 보여 유형? 페이지를 작성/업데이트하는 방법을 변경할 필요가없는 경우 별도의 모델이 필요합니까? 필요한 레이아웃을 렌더링하는 액션을 가리키는 경로를 작성합니까? 나는 "STI"라는 용어를 보았을 때보 다 더 힘들게 만들고 있다고 생각합니다. 나는 "길의 길"을 배우기를 원하기 때문에 나는 조심 스럽다. STI가 필요한가요?

어떤 도움을 주시면 감사하겠습니다.이 고비를 극복해야합니다. 누군가가 "클릭"하도록 도와주세요! :)

답변

3

Here I have written a blog post 이것은 STI를 수행하는 단계별 가이드입니다.

지금까지 당신이 FILE_NAME을 저장합니다 당신이 페이지 모델의 이름을 사진과 함께 열이 있어야이 코드를 사용하는 경우이

class Photo < Page 

attr_accessor :photo_file_name, :photo_file_size, :photo_file_type 

    has_attached_file :photo, 
        :url => "#{your_upload_url}", 
        :path => "#{your_upload_path}" 
end 

을 할 수있는 이미지를 업로드 할 경우 사진의 클래스가 간다 업로드 된 파일의

희망이 도움이되었습니다. 이것에 대해 더 많은 제안이 필요하면 여기에 있습니다. : D

다시 한 번 당신이 모든 아이 STI 클래스에 대한 별도의 페이지를 필요로 실현 질문을 읽은 후 UPDATE

. 따라서이를 처리하기 위해 다른 컨트롤러가 필요할 것입니다.