Пара вопросов по архитектуре Ruby - PullRequest
0 голосов
/ 17 декабря 2008

Я в основном свободный разработчик .NET (как видно из количества постов и тем, которые я пишу о .NET), но я подумал, что было бы хорошо изучить RoR.

При этом у меня есть несколько вопросов об архитектуре языка (Ruby) и фреймворке (RoR):

1) В .NET каждый объект является производным от System, но наследует System.Object. Поэтому, когда я набираю System., Я получаю список пространств имен и затем в этих пространствах имен, классах и других пространствах имен.

Нет ли в Ruby такой иерархии?

2) В некоторых случаях я не понимаю смысла. Например, я написал класс, как описано здесь (http://wiki.rubyonrails.org/rails/pages/HowToSendEmailsWithActionMailer), но в строке получателей user.email ничего не появляется, когда я набираю «user».

Есть идеи, почему?

Спасибо

Ответы [ 5 ]

4 голосов
/ 17 декабря 2008

Дейв Томас (Pragmatic Programmers) имеет превосходную серию скринкастов по объектной модели / метапрограммированию Ruby. Мы смотрели это в локальной группе пользователей Ruby. Сериал не бесплатный, но и не дорогой. Возможно, вы захотите проверить бесплатный предварительный просмотр, чтобы увидеть, стоит ли вам ждать.

И чтобы дать вам ответ. Да, все в Ruby происходит от Object. Вы можете найти документы по этому вопросу в http://corelib.rubyonrails.org/. Найдите класс Object.

Я не уверен, почему вы не получаете intellisense, отчасти потому, что вы не указали свою IDE. Возможно, вы не можете этого сделать, потому что вы добавили метод динамически, а значение intellisense недоступно.

0 голосов
/ 18 декабря 2008

Поддержка Intellisense, вероятно, не даст вам того, что вы думаете, он получит. Поскольку Ruby является динамическим языком, Intellisense или завершение кода является сложным. Что вы обнаружите, так это то, что либо выпадающий список настолько затоплен возможными дополнениями, что и бесполезен. Или в вашем случае вообще ничего.

Это не на 100% бесполезно, но я никогда не находил это ужасно ценным.

0 голосов
/ 18 декабря 2008

Загрузить NetBeans. Существует полная поддержка intellisense для Ruby и Ruby on Rails.

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

0 голосов
/ 17 декабря 2008

Ruby - это чистый ОО-язык, означающий, что все, от классов до объектов, происходит от класса Object.

0 голосов
/ 17 декабря 2008
  1. Если мы сравним .NET с Rails, тогда да, там будет такая иерархия. И вообще, вы можете достичь такого рода иерархии в любом приложении Ruby с помощью модулей.
  2. Я думаю, это из-за динамического характера Руби.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...