2009-12-17 59 views
0

我的問題非常簡單。如果答案是顯而易見的,我會先問它,然後我會解釋我的意思,以防情況不明顯。從部分調用rails應用程序的主要「收益」

從部分而不是直接從layout.html.haml文件中調用主'yield'調用是否被認爲是可行的?這樣做是否會導致任何類型的性能損失。


解釋...

我呼籲application.html.haml一個佈局文件。

我希望我的主要內容佔用整個頁面寬度,除非該頁面存在邊欄。

如果有側邊欄,那麼我希望主要內容佔用66%的頁面寬度,邊欄用盡剩餘空間。

我在我的佈局如下:

#content 
    - if show_sidebar?  
    #main 
     = yield 
    #sidebar 
     = yield(:sidebar) 
    -else 
    = yield 

內容DIV是100%的頁面寬度。如果沒有側邊欄,那麼'收益'結果會進入這個div。如果存在側邊欄,那麼主要收益會進入稱爲#main的div,該頁面寬度爲66%。

很好,這工作正常。

現在,爲了保持我的主視圖整潔,我已經重構我的代碼一點點,以便它現在看起來是這樣的:

#content 
    - if show_sidebar? 
    - render :partial => 'main_with_sidebar' 
    -else 
    = yield 

然後在局部_main_with_sidebar.html.haml我有這樣的:

#main 
     = yield 
    #sidebar 
     = yield(:sidebar) 

所以一切都是一樣的,除了每當有側邊欄存在的情況下,主要收益率都是從一個部分調用的。

所以我的問題是關於這是否被認爲是最佳實踐。或者我應該堅持讓一個稍微更加複雜的application.html.haml文件並擺脫部分?它似乎沒有造成任何問題,但我想知道如果我在做了太多事情之前做錯了什麼。

是它看起來愚蠢的一些你們,但我是一個設計師,而不是一個開發和這樣的事情是新的我....

回答

1

我會簡單地創建一個新的佈局「帶側邊欄的佈局」

views/layouts/application.html.haml 
views/layouts/sidebar.html.haml 
+0

謝謝。這正是我以前的做法,說實話,我認爲這就是我將不得不繼續這樣做的原因。我認爲這很容易,因爲我正在與其他設計師合作,如果這樣做可能會更適合他們。 謝謝。不能相信我花了多長時間仔細考慮過這個問題! – stephenmurdoch 2009-12-17 13:08:34