2010-04-21 66 views
0

因此,在我的Rails應用程序中,我試圖在某些視圖上設置Javascript測試。在Rails中,有沒有辦法從應用程序佈局中有選擇地加載視圖中的文件?

現在,我在每個視圖具有有條件這樣做..

<% if AppConfig['js_testing'] %> 
<script> 
... 
</script> 
<% end %> 

如果我有它的每一頁上,有很多重複的代碼。有沒有辦法管理應用程序佈局中的所有內容?

+0

您是否需要將相同的代碼放在每個頁面上的js腳本塊中? – house9 2010-04-22 00:23:58

回答

0

有幾個地方你可以把這個,這將有助於減少重複。主要佈局是理想的候選人。另一種可能性是幫助方法,這很容易引入。

您也可以定義一個條件javascript_tag幫助器方法,只在您的觸發器設置時才引入JavaScript。通常這是沿着以下線:

def javascript_testing_tag(content) 
    AppConfig['js_testing'] ? javascript_tag(content) : '' 
end 

然後這是一個非常簡單的練習,用這個條件包裝所有的測試腳本。如果此行爲的邏輯觸發器發生更改,它將使以後重構更容易。

最佳實施取決於您所引入的腳本內容類型。如果它與可能在特定視圖中的JavaScript緊密相關,那麼可能會停滯不前。

另一種方法是簡單地標記每個頁面並具有測試JavaScript代碼,根據文檔的結構觸發特定的行爲。例如,如果存在元素div#user_list,則可以運行testUserList()。

然後,在非測試環境中簡單地不包含測試JavaScript文件是微不足道的。

+0

是的,我打算使用像YUITest這樣的測試套件,並且所有測試用例都應該專門針對每個頁面上的javascript。所以也許我被卡住了。謝謝! – Alex 2010-04-22 23:53:58

+0

作爲一個後續,是否有可能在應用程序佈局中放置一些東西,以便它可以檢查正在呈現的頁面? – Alex 2010-04-23 00:02:06

+0

你可以隨時檢查params [:controller]和params [:action]來做你需要的任何事情。 – tadman 2010-04-24 22:52:17

相關問題