刷新嵌入式Ruby提供的HTML内容,无需重新加载页面

时间:2013-03-23 02:19:38

标签: javascript html ruby-on-rails renderpartial

我在寻找解决方案方面遇到了一些麻烦。基本上,我有一个嵌入的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}) %>");

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

1 个答案:

答案 0 :(得分:0)

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

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

          location.reload();

});

添加到form_for:remote =&gt;真的