Начало работы с Ruby & Ruby on Rails - PullRequest
2 голосов
/ 17 марта 2010

Некоторый фон:

Я мастер на все руки, одна из которых - программирование. Я изучил VB6 через Excel и PHP для создания веб-сайтов, и до сих пор он работал отлично для меня. Я не майор CS или даже математически не склонен - ​​логика это то, что меня интересует.

Текущий статус:

Я готов изучать новые и более мощные языки; мой первый набег на такой маршрут - изучение Ruby. Я пошел на основной сайт Ruby и сделал интерактивное вступление. (кстати, в настоящее время меня перенаправляют на google.com, когда я пытаюсь перейти по ссылке ... это происходит и с другими сайтами ... мой компьютер заражен?)

Мне понравилось то, что я узнал, и хотел начать использовать Ruby для создания веб-сайтов. Я скачал InstantRails и установил его; все до сих пор было хорошо - программа запускается просто отлично, и я могу протестировать некоторый код Ruby в консоли. Однако мои проблемы начинаются, когда я пытаюсь просмотреть веб-страницу с кодом Ruby.

Наконец, моя проблема:

Как и в PHP, я могу просматривать файл .php напрямую, используя теги PHP и некоторые простые операторы 'echo', с которыми я могу работать при создании динамических веб-страниц. Однако с работающим приложением InstantRails доступ к странице .rb или .rhtml не дает аналогичных результатов. Я сделал простой текстовый файл с именем 'test.rb' и поместил туда основные теги HTML (html, head, body) и теги Ruby <% = и%> с небольшим количеством кода ruby ​​внутри. Веб-страница на самом деле показывает теги и код - как будто это просто обычный HTML. Я полагаю, что Ruby не анализирует страницу до того, как она будет отображена для пользователя, но это - то, где мое непонимание среды Ruby останавливает меня. Куда мне идти отсюда?

AMMENDMENT: Этот урок очень помог мне! Я бы посоветовал всем, кто находится в моем положении, пойти туда.

Ответы [ 4 ]

6 голосов
/ 17 марта 2010

Прежде всего необходимо отключить связь между файлами и URL-адресами . Rails использует подход MVC, который отличается от подхода на основе сценариев, такого как ASP / PHP

В классическом PHP у вас есть что-то вроде этого

  1. Сервер> Сервер запущен, обслуживая сценарии с /usr/jake/example.com/htdocs/
  2. Пользователь> Пожалуйста, дайте мне /home.php, спасибо!
  3. Сервер> ОК, /home.php сопоставлен с /usr/jake/example.com/htdocs/home.php
  4. Сервер> Выполнение /usr/jake/example.com/htdocs/home.php
  5. Сервер> Хорошо, он выводит «Hello World!», Отправьте это в ответ.
  6. Пользователь> Хорошо, /home.php показывает «Hello World!»

Однако большинство MVC-фреймворков (включая Rails) работает примерно так:

  1. Сервер> Сервер запущен, инициализация модулей маршрутизации routes.rb
  2. Пользователь> Пожалуйста, дайте мне /home, спасибо!
  3. Сервер> OK, /home, согласно модулю маршрутизации, обрабатывается действием ShowHomepage() в контроллере FrontpageCtr
  4. Сервер> Выполнить FrontPageCtr.ShowHomepage()
  5. Ruby> FrontPageCtr.ShowHomepage() печатает "Hello World!"
  6. Сервер> ОК, отправка "Hello World!" вниз по трубам!
  7. Пользователь> Хорошо, /home показывает «Hello World!»

Как видите, нет никакой связи между тем, что пользователь поместил в адресную строку, и любыми файлами сценариев

В типичной среде MVC обработка запроса любого URL-адреса происходит примерно так:

  1. Посмотрите в модуле маршрутизации (который в случае рельсов определяется в routes.rb)
  2. Затем модуль маршрутизации сообщает серверу, какие «Контроллер» и «Действие» следует использовать для обработки запроса.
  3. Rails затем создает Controller и вызывает функцию Action, какой бы она ни была
  4. Затем результат действия получает «Rendered», который в данном случае предположительно отображает файл .rhtml как фактический HTML… Существуют, конечно, другие виды результатов, например, отправить пользователя на другой URL и еще много чего.
  5. Затем результат записывается в поток ответов и отображается в браузере пользователя.

Короче говоря: сначала вы должны отключить понятие сценариев и URL. Когда вы создаете веб-сайты MVC, они почти всегда НЕ связаны так, как большинство людей понимают.

Имея это в виду, вам должно быть удобнее изучать Rails и образ жизни MVC.

Я не профессионал Rails, поэтому, пожалуйста, поправьте меня, если я ошибаюсь.

1 голос
/ 17 марта 2010

Я бы предложил купить и пройтись по Agile Web Development с Rails , отличной книгой и очень практичным способом изучения как Ruby, так и Rails. Он доступен мгновенно в различных электронных форматах, плюс вы можете получить бумажную копию, если хотите.

Из того, что вы описываете, у вас есть принципиально ошибочное понимание того, как, в частности, работают Ruby и Rails. Я предлагаю вам провести некоторое время с книгой, а затем вернуться и спросить обо всем, на что вы наткнулись.

0 голосов
/ 09 декабря 2013

Начало работы с Ruby on Rails поначалу немного устрашает, но после начала работы становится намного проще. После запуска загрузочных лагерей Ruby on Rails для Startup Accelerators, Harvard Business School, на Таймс-сквер, Бостоне и в Питтсбурге, я начал http://www.firehoseonline.com. Это видеоурок, чтобы начать работу, так что вам следует проверить этот сайт.

Мой совет - узнать как можно больше, написав код. Не зацикливайтесь на деталях и особенностях. Если учебное пособие дает вам некоторый код для написания и некоторую информацию, и вы сначала не воспринимаете всю информацию, продолжайте. После этого вернитесь к материалу, и после того, как вы пройдете весь процесс написания своего первого приложения, многие кусочки будут соединены вместе.

Что касается вашего вопроса об открытии php-файлов напрямую, то использование шаблона MVC немного отличается. Вам нужно настроить контроллер, представления и маршруты, прежде чем вы сможете начать помещать код в .rhtml (или теперь .html.erb) файлы. Благодаря этой архитектуре вы сможете писать много удивительного, чистого кода, очень быстрого, но это может быть немного сложнее обернуть голову (если вы ДЕЙСТВИТЕЛЬНО хотите писать код так, как вы можете с другими фреймворками, но поверьте нам, что так лучше). Придерживайтесь этого!

Держи кодировку на высоком уровне!

Aloha, Ken

0 голосов
/ 17 марта 2010

Rails "разбирает страницу перед тем, как она отображается пользователю", если вы находите нужный файл для изменения ;-) Эти файлы, которые нужно изменить, находятся в следующих папках:

Приложение / просмотров /...

Это короткий ответ. Для всестороннего (для новичка) я настоятельно рекомендую: http://guides.rubyonrails.org/getting_started.html

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