过去我曾在 RoR 项目中使用过 RJS,但我感到非常受制于它所能做的事情。然而,单独使用 Javascript 感觉/感觉丑陋和 hack-y。在编写 Javascript 来操作从变量名自动生成的 Rails 时尤其如此。我最近在博客圈里没有看到太多关于 RJS 的讨论。RJS 是在新的 RoR 项目中使用,还是人们认为它无效?是否仍在积极开发和扩大功能覆盖范围?我希望能对当前的事态有所了解。
那么,谁在使用 RJS(以及它对您的效果如何)以及谁在使用 javascript?
过去我曾在 RoR 项目中使用过 RJS,但我感到非常受制于它所能做的事情。然而,单独使用 Javascript 感觉/感觉丑陋和 hack-y。在编写 Javascript 来操作从变量名自动生成的 Rails 时尤其如此。我最近在博客圈里没有看到太多关于 RJS 的讨论。RJS 是在新的 RoR 项目中使用,还是人们认为它无效?是否仍在积极开发和扩大功能覆盖范围?我希望能对当前的事态有所了解。
那么,谁在使用 RJS(以及它对您的效果如何)以及谁在使用 javascript?
我建议直接编写 javascript。我相信 - 是的 - RJS 已经过时了。原因之一是性感的 jQuery 库的流行。另一个是 RJS 模型 - 因为它是 javascript 的 ruby 包装器,因此对于您需要使用的任何 javascript 库,您将需要一个相应的 ruby 包装器库,这意味着有人将不得不做更多繁重的工作(并且您必须依赖的另一个宝石)。此外,尽管发出请求并接收回可执行 javascript 的想法很好,但我相信有很多人不喜欢这种风格,或者至少认为它不适合某些情况。我个人已经学习了 javascript,并且非常喜欢它,我建议您尝试一下。
我喜欢将 RJS 用于简单的任务,例如:
page["post_#{@post.id}"].replace :partial => @post
page["post_#{@post.id}"].highlight
是的,您可以直接使用 link_to_remote 函数执行此操作,但这只会用代码或update_page
控制器中的 an 使您的视图混乱,但这很丑陋.. rjs 允许您编写与任何 javascript 分离的更清晰易懂的代码库(因为那里有 jrails 之类的东西,或者您可以自己覆盖 Rails 的方法。)
如果您的应用程序有一个非常复杂的 javascript 函数,那么您自己编写 javascript 可能会得到更好的服务,因为此时您不会希望依赖 Rails 提供的抽象。
通过 RJS,我假设您指的是 RJS 模板。整个概念是您正在生成将在浏览器中的 JS eval 函数中作为 AJAX 返回运行的 JavaScript。你究竟是如何“感到非常受制于它可以做的事情”?您可以通过多种方式在 RJS 文件中混合使用 Ruby 和 JS,并且它不会比其他 ERB 类型格式更具限制性。这是使 AJAX 调用不仅仅更新单个<div>
(它们甚至可以更新两个<div>
)的一种非常强大的方法。
我感觉你真的很想问关于使用 JavaScript/Prototype/Scriptaculous Helpers 的问题。是这样吗?
RJS 从来没有打算完全替代 JavaScript,而且您不应该根据您认为其他孩子在博客圈上所做的事情来决定哪种工具适合这项工作。
我个人不喜欢 helpers 生成的 js,所以我通常选择不使用它们。但是,有时它们非常方便。
如果您不是 Prototype 粉丝,还有一个 Jquery 替代品Jrails 。
但是,我必须同意NSD。你为什么要让别人的所作所为最终引领你的道路。如果您不喜欢助手的工作方式,或者他们不是为您的项目做的,请不要使用它们。或者,如果它缺少某些东西,请自己编写。也许在那,你可以点燃一些兴趣。
至于投资时间,是知识。