在我提出这个问题之前,我在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的方式导航它们。
你的答案不仅有助于我的演讲,也可能是许多人的启蒙之源。
答案 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
它只构建一个查询,包含满足两个范围所需的所有条件和连接。
答案 1 :(得分:10)
工具是解决问题。无论你是在谈论木工工作者的工具还是程序员的工具,都没关系。关于Rails(现在仍然如此)给我留下深刻印象的是,它是从用于构建真实世界网络应用程序的框架中提取出来的,并且在使用它构建真实世界的网络应用程序之后,人们一再改进它。这不仅仅是学术活动。
它解决的一些具体问题:
快速入门。如果您希望快速获得Web应用程序,那么您可以选择比指定现有目录结构的框架(基于MVC的框架)更好的选择,包含大量代码生成器,以及已为您预先做出的选择JavaScript库,测试支持,ORM等组件。您可能不同意所有选择,但您可以假设它们并拥有适用于80%或更多项目的内容,如果您有偏好,则可以在以后换出某些内容。< / p>
长期可维护性。迁移为您提供了在代码更改时向前移动数据的方法,这在任何实际应用程序中都会发生,但大多数框架根本不会考虑这一点。将应用程序的所有部分分离到已经设置了测试区域,数据库,配置等的目录层次结构中,再次有助于项目的长期维护。
减少人为错误。配置文件为您提供了人为错误的额外机会。逻辑约定,一旦学会就可以避免错误,例如配置文件错误中的经典错误输入文件名或类名。
认识不同的发展模式。 Rails已经内置了对开发与测试与生产之间设置不同设置的想法。真正的应用程序也有这个,但通常围绕它们的框架不适应它,你最终必须交换配置文件以实现相同的效果(参见上面的人为错误)。
良好做法。我上面提到的一些事情包含并鼓励良好的编程实践(MVC,标准化的项目布局等),但Rails通常明确地鼓励它们而不仅仅是隐含的。为了证明这一点,你需要看看它对测试驱动开发的内置支持。
答案 2 :(得分:8)
我三年前在博客上详细介绍了why I love Rails,但对我而言,第一个很酷的功能是它使开发Web应用程序变得轻松有趣。
答案 3 :(得分:4)
举几个项目:
Rails不会尝试成为Web应用程序的唯一方法,这不是意图。它满足了一系列特定的需求。
答案 4 :(得分:4)
这不是与Python的比较 - 它是我喜欢的一般列表。
答案 5 :(得分:3)
我的一个主要原因是它让网络编程变得有趣。 突然间,事情变得简单而且触手可及。你不需要几个月的代码处理和 不需要写大量的代码。你可以用几行来做一些非常棒的事情。
感觉很好:)。
答案 6 :(得分:2)
老实说,我喜欢Django的设计,而不是rails,但我更喜欢ruby而不是python。这是个人的事情,因为我知道很多人都有相反的感觉,但我觉得红宝石是我用过的最优雅的语言之一。
答案 7 :(得分:1)
我使用Rails的主要动机是ruby。在我找到红宝石之前,我触及了很多语言,我从来没有觉得我对它们有任何好处。当我遇到红宝石时,一切都很有意义。这是一种美丽的语言;易于学习但很难掌握。
我使用rails是因为它适合我作为web开发人员的需求而且功能非常丰富。