0
我想使用ajax更新我的頁面的特定部分,但js.erb文件似乎並沒有替換我的div中的內容。我也注意到,由於某種原因,當地人沒有被傳遞給我的部分。在我的控制器中,我有一個顯示操作來加載show.html.erb,當一個項目被點擊時,它發送一個ajax請求。這些項目位於一個id爲「stream-contents」的div中。該請求被髮送到我的控制器中名爲get_tree_folder的操作,並將響應格式化爲JS。 js.erb和部分文件與我的show.html.erb位於同一文件夾中。js.erb不刷新頁面導軌
這裏是我的控制器操作get_tree_foler:
def get_tree_folder
@file_view = false;
@curriculum = Curricula.find_by_id(params[:id])
@git = get_bare_repo @curriculum
@branch = params[:branch]
tree = @git.gtree(params[:tree])
@child_trees = tree.trees
@child_blobs = tree.blobs
respond_to do |format|
format.js
end
end
我js.erb文件get_tree_folder.js.erb:
$('#stream-contents').html(<%= escape_javascript(render :partial => 'tree', :locals => { branch: @branch, child_trees: @child_trees, child_blobs: @child_blobs, curriculum: @curriculum }) %>);
的控制檯輸出:
Started GET "/curricula/5/master/a9d280e6a0eb41ab7ea012f10f516913b2e53061" for 127.0.0.1 at 2014-03-27 13:52:36 -0700
Processing by CurriculaController#get_tree_folder as JS
Parameters: {"id"=>"5", "branch"=>"master", "tree"=>"a9d280e6a0eb41ab7ea012f10f516913b2e53061"}
Curricula Load (0.3ms) SELECT `curriculas`.* FROM `curriculas` WHERE `curriculas`.`id` = 5 LIMIT 1
Rendered curricula/_tree.html.erb (1.1ms)
Rendered curricula/get_tree_folder.js.erb (2.9ms)
Completed 200 OK in 17ms (Views: 5.9ms | ActiveRecord: 0.3ms | Solr: 0.0ms)
任何意見將不勝感激。
爲什麼若部分被渲染或者不是你不能告訴?你可以在你的問題中添加你的部分'/ app/views /課程/ _tree.html.erb'嗎?日誌顯示部分呈現!在'locals'上,你可以檢查'local_assigns'散列,它應該包含所有傳入的'locals'。 – vee
我其實已經明白了。在我的部分鏈接是<% link_to %>而不是<%= link_to%>。感謝您的幫助! – bammons