0

我在找到解决方案时遇到了一些麻烦。基本上,我有一个嵌入的 ruby​​ 每个循环,其主体是为模型的某个子组渲染的部分。例如:

<li id="thing">
  <% items.each do |i| %>
    <%= render :partial => 'item', :locals => {:i => i} %>
  <% end %>
</li>

我想知道是否有一种方法可以使用 jQuery、AJAX 甚至只是 rails(我确信每个人都有一个可实施的解决方案,而且我对所有这些都感兴趣)来刷新该项目列表。我希望能够做到这一点的原因是,目前,我已经实现了允许创建现在的“项目”或更新现有的“项目”的功能,而无需重新加载页面(表单在这两种情况下单击按钮都会出现在某个容器中),我希望在提交列表时自动更新新信息或新“项目”。尝试刷新整个列表会是更好的方法吗?或者有没有办法将新创建/更新的对象附加到部分列表(作为部分)客户端?

我尝试了以下语句,但似乎无法避免在渲染时出现“未定义方法”错误。

$("#activeTab").append("<%= escape_javascript(render :partial => 'item', :locals => {:i => Item.order(:created_at).last}) %>");

我认为这将是一个很好的解决方案,因为一旦页面被导航并返回,列表将再次加载。这只是在您仍在页面上时附加到静态列表。

4

1 回答 1

0

抓住你用来提交这个新项目的任何东西(我称之为submit_button)并使用jquery重新加载页面。

$('#submit_button').click(function() {

          location.reload();

});

添加到 form_for :remote => true

于 2013-03-23T17:37:59.343 回答