Как прочитать исходный код примера проекта Rails? - PullRequest
2 голосов
/ 29 декабря 2008

Чтение исходного кода примеров проектов, таких как Beast и Bort, рекомендуется в качестве хорошего способа изучения рельсов. Но я обнаружил, что теряюсь при чтении исходного кода этих проектов, потому что включенные плагины могут вводить какой-то странный код без каких-либо подсказок, например "require" или "include". Не могли бы вы поделиться своим опытом чтения кода с рельсов? Большое спасибо вперед.

Ответы [ 3 ]

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

Когда вы учитесь использовать рельсы, одна из самых важных вещей, которую нужно знать, это то, как она загружает написанный вами код. Допустим, у вас есть HelloController в каталоге app / controllers / demo / sub. Если вы сгенерировали этот контроллер, он будет иметь правильное имя Demo :: Sub :: HelloController.

Когда ваш маршрут говорит рельсам искать "demo / sub / hello", это переводится в полное имя контроллера (Demo :: Sub :: HelloController), который будет пытаться вызвать rails. Ruby не может найти этот класс и вызывает const_missing, который заставляет rails переводить имя в файл, в этом случае demo / sub / hello_controller (:: = /, заглавные буквы, отличные от first = _, ищите Inflections в методе подчеркивания). Затем Rails требует этот файл и проверяет правильность определения класса.

Rails добавляет несколько каталогов в путь загрузки ruby ​​(app / controllers, app / models, app / helpers, lib, vendor) и demo / sub / hello_controller.rb в любом из этих каталогов, удовлетворяющих требованиям. Но контроллеры, не входящие в приложение / контроллеры, нуждаются в особом внимании к их представлениям.

Кроме того, это работает для пространств имен, только он будет искать каталог. Так что ссылка на Demo :: Sub будет искать каталог demo / sub. Это позволяет вам отказаться от стандартного определения классов, так что вы можете сделать

class Demo::Sub::HelloController < ActionController::Base

end

вместо

module Demo
  module Sub
    class HelloController < ActionController::Base

    end
  end
end
0 голосов
/ 29 декабря 2008
  1. Разрабатывайте простой проект rails, пока не разберетесь с базовыми Rails-компонентами. Потому что, как только вы узнаете стандартные Rails, вы быстрее узнаете функциональность плагина
  2. Познакомьтесь лучше с ruby, так как в нем написано Rails. Например, есть книга под названием Ruby for Rails, которая является хорошей отправной точкой.
  3. Мне нравится смотреть на тесты, идущие сначала сверху вниз (интеграция, контроллер, модель)
0 голосов
/ 29 декабря 2008

Код Rails - это в основном код ruby. Мастер в ruby, и у вас не будет никаких проблем с чтением кода рельсов. Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...