在我提出这个问题之前,我在SO上查看了"Ruby on Rails"的搜索结果.找不到多少,但以下(在此页面上找到)让我很开心
就个人而言,我开始使用.html,转移到php,尝试ruby(讨厌它),发现Python/DJango ..并且从那以后一直很开心.
现在这是交易.我还没有个人学习Ruby on Rails的意图,但这是我在Uni做的小组演示的主题(我的队友选择了RoR主题).对学生提出问题的问题的人应立即离开.
这个问题适用于发现它很棒的RoR人.我希望找到那些声称RoR最好的人(在RoR网站上找到令人惊叹的推荐书的作者).是什么让RoR如此出色?在你离开Uni学位之前,你希望今天的年轻人能够发现什么呢?尝试建议一些可以根植于他们脑海中的东西,也许可以在离开Uni后以RoR的方式导航它们.
你的答案不仅有助于我的演讲,而且可能成为许多人的启蒙之源.
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使用.
工具是解决问题.无论你是在谈论木工工作者的工具还是程序员的工具,都没关系.关于Rails(现在仍然如此)给我留下深刻印象的是,它是从用于构建真实世界网络应用程序的框架中提取出来的,并且在使用它构建真实世界的网络应用程序之后,人们一再改进它.这不仅仅是学术活动.
它解决的一些具体问题:
快速入门.如果您希望快速获得Web应用程序,那么您可以选择比指定现有目录结构的框架(基于MVC的框架)更好的选择,包含大量代码生成器,以及已为您预先做出的选择JavaScript库,测试支持,ORM等组件.您可能不同意所有选择,但您可以假设它们并拥有适用于80%或更多项目的内容,如果您有偏好,则可以在以后换出某些内容.
长期可维护性.迁移为您提供了在代码更改时向前移动数据的方法,这在任何实际应用程序中都会发生,但大多数框架根本不会考虑这一点.将应用程序的所有部分分离到已经设置了测试区域,数据库,配置等的目录层次结构中,这再次有助于项目的长期维护.
减少人为错误.配置文件为您提供了人为错误的额外机会.逻辑约定,一旦学会可以避免错误,如配置文件中的经典错误输入文件名或类名错误.
承认不同的发展模式.Rails已经内置了对开发与测试与生产之间设置不同设置的想法.真正的应用程序也有这个,但通常围绕它们的框架不适应它,你最终必须交换配置文件以实现相同的效果(参见上面的人为错误).
好的做法.我上面提到的一些事情包含并鼓励良好的编程实践(MVC,标准化的项目布局等),但Rails通常明确地鼓励它们,而不仅仅是隐含的.为了证明这一点,你需要看看它对测试驱动开发的内置支持.
三年前我在博客上详细介绍了为什么我喜欢Rails,但对我而言,第一个很酷的功能是它使开发Web应用程序变得轻松有趣.