什么是最酷的Ruby on Rails功能,为什么选择它?

时间:2009-04-05 09:22:54

标签: ruby-on-rails ruby

在我提出这个问题之前,我在SO上查看了“Ruby on Rails”的搜索结果。找不到多少,但以下(found on this page)让我很开心

  

就我个人而言,我开始使用.html,移动到php,尝试过ruby(讨厌它),发现了Python / DJango ..从此以后一直很开心。

现在就是这笔交易。我还没有个人学习Ruby on Rails的意图,但这是我在Uni做的小组演示的主题(我的队友选择了RoR主题)。对学生提出问题的问题应该立即离开。

这个问题适用于发现它很棒的RoR人。我希望找到那些声称RoR最好的人(在RoR网站上找到令人惊叹的推荐书的作者)。是什么让RoR如此出色?在你离开Uni学位之前,你希望今天的年轻人能够发现什么呢?尝试建议一些可以根深蒂固的东西,并且可能在离开Uni后以RoR的方式导航它们。

你的答案不仅有助于我的演讲,也可能是许多人的启蒙之源。

8 个答案:

答案 0 :(得分:13)

  • ActiveRecord的动态查找器:

    Person.find_by_name_and_company_id('Jorge Luis Borges', 42)
    
  • rjs,在ruby中编写javascript:

    page['element_id'].insert_html :bottom, :partial => 'comment'
    
  • ActiveRecord的范围

    class Shirt < ActiveRecord::Base
      named_scope :red, :conditions => {:color => 'red'}
      named_scope :dry_clean_only, :joins => :washing_instructions, :conditions =>  ['washing_instructions.dry_clean_only = ?', true]
    end
    

调用Shirt.red将使用“color ='red'”条件查询数据库 很酷的部分,如果你结合了多个范围,例如:

      Shirt.red.dry_clean_only

它只构建一个查询,包含满足两个范围所需的所有条件和连接。

  • ActiveRecord的迁移,能够使用活动记录管理数据库结构和数据,就像在应用程序的代码中一样,使用最少的SQL。

答案 1 :(得分:10)

工具是解决问题。无论你是在谈论木工工作者的工具还是程序员的工具,都没关系。关于Rails(现在仍然如此)给我留下深刻印象的是,它是从用于构建真实世界网络应用程序的框架中提取出来的,并且在使用它构建真实世界的网络应用程序之后,人们一再改进它。这不仅仅是学术活动。

它解决的一些具体问题:

  • 快速入门。如果您希望快速获得Web应用程序,那么您可以选择比指定现有目录结构的框架(基于MVC的框架)更好的选择,包含大量代码生成器,以及已为您预先做出的选择JavaScript库,测试支持,ORM等组件。您可能不同意所有选择,但您可以假设它们并拥有适用于80%或更多项目的内容,如果您有偏好,则可以在以后换出某些内容。< / p>

  • 长期可维护性。迁移为您提供了在代码更改时向前移动数据的方法,这在任何实际应用程序中都会发生,但大多数框架根本不会考虑这一点。将应用程序的所有部分分离到已经设置了测试区域,数据库,配置等的目录层次结构中,再次有助于项目的长期维护。

  • 减少人为错误。配置文件为您提供了人为错误的额外机会。逻辑约定,一旦学会就可以避免错误,例如配置文件错误中的经典错误输入文件名或类名。

  • 认识不同的发展模式。 Rails已经内置了对开发与测试与生产之间设置不同设置的想法。真正的应用程序也有这个,但通常围绕它们的框架不适应它,你最终必须交换配置文件以实现相同的效果(参见上面的人为错误)。

  • 良好做法。我上面提到的一些事情包含并鼓励良好的编程实践(MVC,标准化的项目布局等),但Rails通常明确地鼓励它们而不仅仅是隐含的。为了证明这一点,你需要看看它对测试驱动开发的内置支持。

答案 2 :(得分:8)

我三年前在博客上详细介绍了why I love Rails,但对我而言,第一个很酷的功能是它使开发Web应用程序变得轻松有趣。

答案 3 :(得分:4)

举几个项目:

  • 大型开发者社区(不是说python没有)
  • 围绕配置岩石的惯例
  • 可以与JRuby / Warbler一起使用,以便在Java应用程序服务器上运行rails。在尝试将Enterprise拖入21世纪时非常重要(Django可以与Jython一起使用以处理应用程序服务器,但不太成熟)。
  • MVC框架有助于保持应用程序的结构化。
  • 脚手架和发电机让您的项目移动。

Rails不会尝试成为Web应用程序的唯一方法,这不是意图。它满足了一系列特定的需求。

答案 4 :(得分:4)

这不是与Python的比较 - 它是我喜欢的一般列表。

  • 我编写的代码少于Java中的代码
  • ......我做的代码非常易读且易于维护
  • 我很少需要考虑代码存在的位置或如何处理常见任务 - 它只是有其位置(例如迁移是内置的)
  • 您最终不会在一个项目上使用大量不同的技术(Java,EJB,Hibernate,JSP,SQL DDL,Ant,XML,taglibs)
  • 解释而不是编译可以节省大量的开发时间

答案 5 :(得分:3)

我的一个主要原因是它让网络编程变得有趣。 突然间,事情变得简单而且触手可及。你不需要几个月的代码处理和 不需要写大量的代码。你可以用几行来做一些非常棒的事情。

感觉很好:)。

答案 6 :(得分:2)

老实说,我喜欢Django的设计,而不是rails,但我更喜欢ruby而不是python。这是个人的事情,因为我知道很多人都有相反的感觉,但我觉得红宝石是我用过的最优雅的语言之一。

答案 7 :(得分:1)

我使用Rails的主要动机是ruby。在我找到红宝石之前,我触及了很多语言,我从来没有觉得我对它们有任何好处。当我遇到红宝石时,一切都很有意义。这是一种美丽的语言;易于学习但很难掌握。

我使用rails是因为它适合我作为web开发人员的需求而且功能非常丰富。