我很好奇最好的方式來加載與jQuery的部分導軌。到目前爲止,我已經嘗試不工作的解決方案:加載部分jQuery和導軌
$('#imagecontent').load('/newsletters/_image_gallery.html.erb', function() {
alert('Load was performed.');
});
是建立此一個單獨的動作和/或控制器,併成立了一個路線的最佳解決方案?我問,因爲使第一個解決方案的工作似乎更容易,可能不那麼寧靜。
謝謝。
我很好奇最好的方式來加載與jQuery的部分導軌。到目前爲止,我已經嘗試不工作的解決方案:加載部分jQuery和導軌
$('#imagecontent').load('/newsletters/_image_gallery.html.erb', function() {
alert('Load was performed.');
});
是建立此一個單獨的動作和/或控制器,併成立了一個路線的最佳解決方案?我問,因爲使第一個解決方案的工作似乎更容易,可能不那麼寧靜。
謝謝。
您應該無法從HTTP請求訪問模板文件(.erb),這是非常糟糕的做法。我建議你把它們放在你的Web服務器路徑之外,只能通過你的應用程序訪問它們。
我不知道Rails,但我想你需要創建一個單獨的控制器(或其他)來做到這一點。
編輯這是因爲.erb文件被嵌入的Ruby文件,如果你試圖要求他們,你會得到所有不需要的數據,如<%= page_title %>
,您不希望顯示的用戶。因此,您需要通過Rails應用程序傳遞這些.erb文件,以便將它們正確解釋爲HTML。
好的 - 謝謝你的見解。我會相應地構造它。 – Christian 2010-02-09 16:21:23
代碼不起作用的原因是rails不會在外面暴露視圖文件。爲了達到你想要的東西,你需要一個行動,這將使該部分:
def image_gallery
render :partial => "image_gallery"
end
也有一個插件叫做jRails它取代標準的AJAX助手(使用原型)具有同等面向jQuery的人。在你的情況下,你會使用類似於
<%= remote_function(:update => "imagecontent", :url => "/newsletters/image_gallery") %>
甚至更多,在Rails 3中,你將不需要它。請參閱this link。
謝謝 - 我期待在Rails 3中看到所有新東西。 – Christian 2010-02-09 16:22:22
了Rails 3,你可以做...
控制器
觀點 - 無論是haml.erb(html.erb)或js.erb
$('#myDiv').html("<%= escape_javascript render @content %>");
你可以試試這個,如果梁2(只提供樣機除非noConflict加)...
在控制器
@content = render :partial=>"https://stackoverflow.com/users/cool_partial"
打電話給你的js
myFunction(#{@content.to_json})
你的功能...
myFunction = function(content){
$("myDiv").html(content);
}
我與中微子,這可能是更好的處理達成一致通過行動。
def get_partial
render 'some/partial'
end
希望這有助於
另一種選擇:
$('#imagecontent').html('<%= escape_javascript render 'newsletters/image_gallery' %>');
就像一個音符,你不能使用的.html()來加載你的諧音無論是。即使你用Ruby代碼來調用它。這是因爲它會將整個表單渲染在引號和整個頁面之間。如果我知道一個,我會建議另一種方式,但這正是我正在尋找自己的atm。 – 2013-02-19 20:01:33