在链接点击时使用AJAX更新页面

时间:2014-01-09 13:36:32

标签: ruby-on-rails ajax ruby-on-rails-4

我正在制作一个债务管理应用程序,我的控制器中有@opened_debts@all_debts(已打开并退回债务)。

默认情况下,我只在页面上加载@opened_debts。但我也有一个链接显示页面上的所有债务。

<a href="#" id="show_all_debts">Show all debts</a>

点击此链接后,我希望页面用debts_div重新加载@all_debts

如果我在页面底部使用<script>制作click event标记,则将其加载

$('#debts_div).replaceWith('<%= j render @all_debts %>');

Rails实际上会渲染所有债务并使其对用户不可见,直到他点击链接为止。但它会使所有这些巨大的脚本加载页面速度变慢。

我可以加载此列表而不在页面上呈现它,直到用户点击链接吗?

提前致谢!

1 个答案:

答案 0 :(得分:2)

使用rails_ujs

<%= link_to "Show all depts", model_path(), :remote => true %>

然后您的请求将作为ajax发送。使用

为js创建一个视图

_index.html

<div>some code</div>

在index.html.erb中创建DRY

<%= render :partial => 'index.html' %>

index.js.erb使DRY

$('#debts_div).replaceWith('<%= j( render :partial => 'index', :format => :html ) %>');

应该有效