我不敢相信我为了这个简单的任务花了四个小时,但我确实做到了。
在 Rails 2.3 中,我可以使用以下简单代码替换页面的一部分:
渲染:更新|页面| page.replace_html "div_id", :partial => "new_content",... 结束
在 Rails 3 中,Ryan Bates 让我编写全新的 javascript 函数,从 Prototype(rails 默认)切换到 jQuery,否则就不享受生活了。其他类(class)也同样简单。
我错过了什么?我们如何更换<div>
这几天?
最佳答案
谢谢,伙计们。官方的答案似乎是,是的,团队认为简单是优秀的敌人,因此将其变得更加复杂。
第一个关键是创建一个 .js.erb 文件,命名为调用 ajax 更新的方法。因此,如果索引方法处理更新,请将原始 JavaScript 放入 index.js.erb
中。这位于 View 文件夹中。
其次,在index.js.erb中运行的代码是
m = $('list_users');
m.innerHTML = "<%= escape_javascript(render :partial => "reload_users") %>";
然后要进行调用,请在 Controller 方法的respond_to block 中添加:
format.js
最后,调用 View 有:
<%= link_to "Update User List", @reload_users_path, :remote => true %>
顺便说一句,如果您安装插件,据说所有使用 page.replace
的旧页面都可以工作。插件下载页面表明它在 Rails 3 的最新版本中出现问题并且尚未修复。此外,如果您使用它,各种博主会来到您家并更换您。
关于ruby-on-rails - rails 3 : Simple AJAXy Page updates?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4016285/