2010-12-10 46 views
0

我有一個應用程序,我建設學習軌道。這是一個使用awesome_nested_set創建嵌套頁面的簡單頁面管理器。我想使用STI,但我不確定如何完成這項工作。我看到的性傳播感染的大部分例子都涉及一個主要的「寵物」模型和「狗」和「貓」的子模型;我很難把它變成現實世界的例子。以下是我如何使用這些頁面。單頁模型,不同的佈局/視圖。我怎樣才能利用STI?

3種不同的頁面「類型」:博客,照片,手機照片。只有這樣才能真正描述這一點,就是向您展示我在Coldfusion Blog,Photo,Mobile Photos中構建的當前網站。

所有使用相同的表和幾乎相同的屬性。照片部分使用照片屬性並進行一些小的更改,例如上傳,調整大小等 - 但除此之外,不同「類型」之間的所有內容都是相同的。頁面類型之間的主要區別在於頁面的佈局以及訪問方式。例如:

在指數:
/照片 - 佈局縮略圖顯示所有網頁W/A型「照片」的
/博客 - 佈局以顯示所有網頁W/A型的「博客」

在節目:
/照片/ 1 - 顯示大照片瓦特/上一頁/下一頁照片
/博客/ 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

UPDATE

我再一次意識到,你還需要一個單獨的頁面,所有的子類STI閱讀的問題後。因此,你將需要不同的控制器來處理。

相關問題