我在查找解决方案时遇到了一些问题。基本上,我有一个嵌入式ruby每个循环,其主体是部分呈现模型的某个子组。例如:刷新HTML内容,由嵌入式Ruby提供,无需重新加载页面
<li id="thing">
<% items.each do |i| %>
<%= render :partial => 'item', :locals => {:i => i} %>
<% end %>
</li>
我在想,如果有使用jQuery,AJAX的方式,甚至只是轨(我敢肯定,每个人都有对我来说是可实现的解决方案,我很感兴趣的是他们)刷新该项目的列表。我希望能够做到这一点的原因是,目前,我已经实现了功能,以允许创建现在的“项目”或再次更新现有的“项目”,而不必重新加载页面(表单在两种情况下,按钮点击都会出现在某个容器中),我希望在提交列表时自动更新新信息或新“项目”。尝试刷新整个列表会是更好的方法吗?或者是否有办法将新创建/更新的对象附加到部分(作为部分)客户端列表?
我试过以下语句,但我似乎无法避免在渲染时出现“未定义的方法”错误。
$("#activeTab").append("<%= escape_javascript(render :partial => 'item', :locals => {:i => Item.order(:created_at).last}) %>");
我想这会是一个很好的解决方案,因为一旦网页被导航程,回来,名单将需要重新加载。这只是添加到静态列表,而你仍然在页面上。
你能包括大致什么的HTML Ruby代码会导致同样,该列表,表单和表单处理逻辑都在同一页面上? – 2013-03-23 02:27:15
该视图具有与此视图适用的模型关联的对象列表,所以我从另一个模型中抓取该部分项。部分内容包括上传的照片或视频,一些指标等,因此没有太复杂的内容。当单击适当的按钮时,表单会替换集装箱暂时列出清单,并在提交后再次显示清单。我只是在click事件处理程序中使用jQuery .show()和.hide()方法。表单是一个rails表单,所以我使用语法form_for ...这是否提供了一个更好的主意?感谢您抽出时间:) – 2013-03-23 02:34:33
我很抱歉,但现在是3:45,所以仍然没有足够的信息让我的大脑能够充分了解情况。就我所见,我们在浏览器中有一个html页面,并且有一个服务器能够吐出html并对ajax请求作出反应。对不起,也许我知道太少(没有真正的)关于Ruby的帮助。 – 2013-03-23 02:46:29