我最近开始学习基于RoR3 beta/RC的Ruby on Rails。我之前一直在使用其他框架(比如Django)开发应用程序,其中的JavaScript完全是我自己编写的。
在使用RoR开发应用程序时,我对实现JavaScript的两种可能方式感到困惑:“纯”方式(编写JavaScript并将其放入<script>标记中)和编写RJS文件。
应该使用哪种方法以及何时使用?如果是RJS,我该如何实现像onChange这样的特定操作?
发布于 2010-09-06 00:39:20
在rails中,您应该对不同的任务使用这两种方法。我也是。当我想执行ajax请求时,我使用RJS,因为它简化了请求,并允许用更少的代码在.rjs文件中编写更强大、更灵活的响应。例如,可以在其中使用partials,也可以访问ruby变量。当我想让一个页面更具动态性时,我会使用包含javascript_include_tag的普通javascript。
这种方法在3中也是以同样的方式工作的。它可以与JQuery和HAML一起使用。Rails 3中的UJS甚至简化了它。如果您更喜欢Jquery而不是Prototype和适当的文件命名(如create.js.haml ),那么您唯一应该做的就是使用jquery-ujs。例如,可以通过这种方法在AJAX请求中使用server-side validation。
发布于 2011-01-12 18:46:40
在Rails3中,正确的方法是纯JS。RJS太严格了,你必须以某种方式使用Prototype或hack才能在jQuery中使用它。Rails3也促进了低调的javascript。对于AJAX请求,您应该返回嵌入了ERB的纯Javascript,而不是使用RJS。
不幸的是,由于此更改需要对使用RJS的旧项目进行大量返工,因此有些人将对其置之不理。
RJS实际上在Rails3中已经贬值了,你甚至需要一个插件来使用它,所以如果你现在就开始工作,并且有幸已经开始使用Rails3,那么就继续使用rails 3吧。
下面是新的UJS方式的一个很好的例子:http://railscasts.com/episodes/205-unobtrusive-javascript
祝好运
https://stackoverflow.com/questions/3378091
复制相似问题