欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  资讯频道

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

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


在前面新闻当中我们已经介绍了前两篇,在本文当中我们继续介绍接下来的三篇:

三、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项目。

相关标签: Rails jQuery