关于Ruby架构的几个问题

时间:2008-12-17 16:08:24

标签: ruby

我主要是一个流利的.NET开发人员(从我对.NET发布的帖子和帖子的数量可以看出),但我认为学习RoR会很好。

在这样做时,我对语言架构(Ruby)和框架(RoR)有几个问题:

1)在.NET中,每个对象都是从System派生的,但是继承了System.Object。因此,当我键入System。时,我会获得一个名称空间列表,然后是那些名称空间,类和更多名称空间。

Ruby没有这种层次结构吗?

2)在某些情况下,我没有获得智能感知。例如,我按照此处所述(http://wiki.rubyonrails.org/rails/pages/HowToSendEmailsWithActionMailer)编写了类,但在行收件人user.email中,当我键入“user”时,没有任何内容出现。

知道为什么吗?

感谢

5 个答案:

答案 0 :(得分:4)

Dave Thomas(实用程序员)在Ruby对象模型/元编程方面有一个很好的screencast series。我们在本地Ruby用户组中观看了这个。该系列不是免费的,但它也不贵。您可能需要查看免费预览,看看您是否认为值得花时间。

并给你一个答案。是的,Ruby中的所有内容都来自Object。您可以在http://corelib.rubyonrails.org/找到相关文档。寻找Object类。

我不确定你为什么没有获得intellisense,部分原因是你没有指定你的IDE。有可能你不能,因为你已经动态添加了方法,并且没有智能感知。

答案 1 :(得分:0)

  1. 如果我们将.NET与Rails进行比较,那么是的,那里有这种层次结构。通常,您可以通过使用模块在任何Ruby应用程序中实现这种层次结构。
  2. 我想这是因为Ruby的动态特性。

答案 2 :(得分:0)

Ruby是一种纯粹的OO语言,这意味着从类到对象的所有内容都来自Object类。

答案 3 :(得分:0)

下载NetBeans。对Ruby和Ruby on Rails有完整的intellisense支持。

http://www.netbeans.org/features/ruby/index.html

答案 4 :(得分:0)

智能感知支持可能不会让你得到你认为会得到你的东西。因为Ruby是一种动态语言,所以Intellisense或代码完成很困难。你会发现,下拉的可能完全被淹没而无用。或者在你的情况下什么都没有。

这不是100%没用,但我从来没有发现它非常有价值。