DHH发表《破除Rails迷思》系列之三
程序员文章站
2022-04-30 08:24:17
...
在Rails创始人DHH首次回应Zed Shaw对Rails的抨击新闻当中,我们介绍了Rails创始人DHH最近开始撰写关于围绕Rails话题的一个系列文章,意在对围绕Rails周围的种种置疑和争议给出一个私人的看法,希望消除对Rails的一些不正确的看法。这个系列现在DHH已经写了五篇,分别是:
http://www.loudthinking.com/posts/29-the-rails-myths
在前面新闻当中我们已经介绍了前两篇,在本文当中我们继续介绍接下来的三篇:
三、Rails强迫你使用prototype JavaScript库吗?
事实并非如此,如果你想用JQuery其实也很容易。首先加载jquery库:
假设有这样一个html form:
使用jquery去操作他很简单:
在服务器端响应代码:
对于返回的format.js,可以这样:
这个例子告诉我们,在Rails当中使用jquery其实非常简单,Rails喜爱所有的AJAX库,而不仅仅是prototype。此外你还可以使用一些Rails的插件,让jquery和mtools可以和Rails集成的更加紧密,例如jRails项目。
http://www.loudthinking.com/posts/29-the-rails-myths
DHH 写道
* Myth #1: Rails is hard to deploy
* Myth #2: Rails is expected to crash 400 times/day
* Myth #3: Rails forces you to use Prototype
* Myth #4: Rails is a monolith
* Myth #5: Rails is hard because of Ruby
* Myth #2: Rails is expected to crash 400 times/day
* Myth #3: Rails forces you to use Prototype
* Myth #4: Rails is a monolith
* Myth #5: Rails is hard because of Ruby
在前面新闻当中我们已经介绍了前两篇,在本文当中我们继续介绍接下来的三篇:
三、Rails强迫你使用prototype JavaScript库吗?
事实并非如此,如果你想用JQuery其实也很容易。首先加载jquery库:
<%= javascript_include_tag "jquery", "jquery-ui" %>
假设有这样一个html form:
<% form_for(Comment.new) do |form| %> <%= form.text_area :body %> <%= form.submit %> <% end %>
使用jquery去操作他很简单:
$(document).ready(function() { $("#new_comment").submit(function() { $.post($(this).attr('action') + '.js', $(this).serializeArray(), null, 'script'); return false; }); });
在服务器端响应代码:
def create @comment = Post.create(params[:comment]) respond_to do |format| format.html { redirect_to(@comment) } format.js end end
对于返回的format.js,可以这样:
$('#comments').append('<%= escape_javascript(render(:partial => @comment)) %>'); $('#new_comment textarea').val(""); $('#<%= dom_id(@comment) %>').effect("highlight");
这个例子告诉我们,在Rails当中使用jquery其实非常简单,Rails喜爱所有的AJAX库,而不仅仅是prototype。此外你还可以使用一些Rails的插件,让jquery和mtools可以和Rails集成的更加紧密,例如jRails项目。
推荐阅读