在将多个部分渲染到一个特定页面时,我一直在努力解决出现的错误。我的管理面板中有4个不同的按钮,我希望每个按钮都调用一个ajax调用来相应地渲染4个不同的部分。不幸的是,当我试图实现它时,它恰好仅在一个按钮上工作,其余部分根本没有响应。
这是我在控制器中的行动:
def administration
@orders = Order.all
respond_to do |format|
format.json
format.html
format.js
end
end
我的观点:
<% provide(:title, "Administration") %>
<h1>Manage your site</h1>
<section>
<div class="tabs tabs-style-bar">
<nav>
<ul>
<li><%= link_to "Masters", {:controller => 'masters', :action => 'index'}, class: "link fa fa-group", :remote => true %>
</li>
<li><%= link_to "Orders", {:controller => 'masters', :action => 'administration'}, class: "fa fa-tasks", :remote => true %>
</li>
<li><%= link_to "Services", {:controller => 'masters', :action => 'services'}, class: "fa fa-tags", :remote => true %>
</li>
<li><%= link_to "Settings", edit_master_path(current_master), class: "fa fa-cogs" %>
</li>
</ul>
</nav>
</div><!-- /tabs -->
</section>
<div class="orders"></div>
<div class="masters"></div>
<div class="services"></div>
和我的JS接收器:
var orders_inject = $("<%= j raw render 'orders' %>");
$('.orders').html(orders_inject);
所以,请让我全力以赴,因为错误发生已经很久了!
答案 0 :(得分:0)
希望这对您有用,请尝试此操作并更改渲染文件。我只想假设部分test1
和test2
$(".orders").replaceWith("<%= j(render('test1') %>");
$(".services").replaceWith("<%= j(render('test2') %>");