2012-08-23 52 views
2

我正在使用Ruby on Rails 3.2.2和jquery-rails 2.0.2 gem(包括jQuery UI插件)。爲了幹(不要重複自己)我的代碼我打算「提取」部分模板中的jQuery Dialog Widget,它將以我的應用程序幾乎相同的方式呈現;所以,我想通過在整個:locals聲明中傳遞一些「複雜」代碼(可能是JavaScript代碼)來實現和呈現該模板...但我在如何正確傳遞該代碼方面遇到了一些問題。如何正確呈現使用jQuery插件的部分模板?

具體來說,我想通過傳遞:locals與「建設」/說,「填充」,以使模板一些jQuery的對話框選項事件方法(見jQuery UI Official Documentation更多信息),例如,選項title或事件close注意:其意圖是「通過」/「構建」/「填充」內容是JavaScript代碼或JavaScript代碼和Ruby代碼)。

我/我應該怎樣做才能完成我的目標?是否有一些「常見」的做法或做法?

回答

0

下面是一個簡單的例子。看看這是否有用,以及YMMV。

部分可以包含JavaScript和Ruby代碼作爲ERB(或HAML,或任何您想使用的模板)。

我使用將共享部分放在目錄./app/views/shared中的約定。

示例文件./app/views/shared/_dialog.html.erb

<!-- typical jQuery dialog box creator --> 
<script> 
    $(function() { 
    $("#dialog").dialog(); 
    }); 
</script> 

<!-- typical dialog with Ruby ERB for title and message --> 
<div id="dialog" title="<%= title %>"> 
    <p><%= message %></p> 
</div> 

要調用部分從您的視圖頁面:

<h1>My Page</h1> 
<%= render :partial => "shared/dialog", 
    :locals => { :title => :"Hello", :message => "World" } %> 
+0

我已經知道你說的(這是存在於問題*聯官方之證件! *)。在我的情況下,我正在尋找通過':locals'(並正確地「構建」呈現的模板)傳遞JavaScript和Ruby代碼到部分模板的「組合」。 – Backo