Подтвердить что ты не робот

How: Ruby on Rails для создания базового сайта

Я студент-компас, который хочет немного узнать о веб-разработке - я лучше всего учусь. Я знаю базовый html/css/php/javascript/xml, но поскольку Ruby является одним из моих любимых языков сценариев, я решил, что изучу Ruby on Rails.

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

Это может показаться немного глупым, но, как человек, который никогда не создавал сайт, мне было интересно, как именно это происходит с рельсами - например, как я могу сделать основной макет для основной части сайта - - с такими вещами, как "Главная, О нас, Услуги, Контакт, Исполнительный директор клуба" наверху? Должен ли я сделать это в html и поместить его в раздел "просмотр"? Учебники, которые я прочитал на рельсах (Getting Started With Rails), фактически делают базовую систему инвентаризации легкой, по сравнению с этой частью, используя много встроенной функциональности Rails и лесов. Документация Rails немного путается.

4b9b3361

Ответ 1

"Официальная" книга Rails неплоха, если вы хотите начать создавать Rails-приложения. ссылка

Но на самом деле это что-то вроде этого:

  • Создайте приложение rails с помощью rails applicationname
  • Создайте контроллеры. Он видит, что для вас один контроллер на самом деле достаточно, назовите его, например, main: ruby script/generate controller main
  • Теперь у вас есть контроллер в app/controllers, называемый main_controller.rb. Здесь вы можете вставить действия, которые вы хотите, чтобы этот контроллер ответил. Если вы не хотите, чтобы контроллер делал что-либо, просто показывая представление, оставьте метод пустым.

    class Main < ActionPack::Controllers
    def index
    end
    def about
    end
    def contact
    end
    (...)
    end
    
  • Теперь у вас есть контроллер, который будет реагировать на индекс, связь и контакт.

  • Создайте представления для этого контроллера в app/views/main/index.erb (и другие, например about.erb)
  • Вы можете просто использовать HTML, если хотите
  • В качестве альтернативы вы можете использовать макет, который вы должны определить в app/views/layouts/main.rhtml. В этом макете используйте HTML, но где вы хотите включить представление, напишите <%= yield %> Пример:

    <HTML>
    <BODY>
    <%= yield %>
    </BODY>
    </HTML>
    
  • Вы можете включить этот макет в контроллер, написав layout :main в классе (перед объявлениями метода)

  • Теперь, если вы запустите ruby script/server в корневом приложении, вы можете получить доступ к страницам, которые вы создали. Конечно, они будут статичными, но это может заставить вас идти. Вы должны добавить модели и некоторую логику для ваших контроллеров, чтобы продвигаться вперед. Я советую вам проверить книгу, которую я связал, если вас интересует больше, или проверить альтернативы рельсов, например merb (http://merbivore.org), который имеет некоторые приятные функции и обычно быстрее, но не имеет зрелости рельсов.

Ответ 2

Я взял книгу "Agile Web Development with Rails", и это отлично. Он проходит через создание онлайн-продуктовой тележки.

Ответ 3

Вы должны прочитать о Model-View-Controller, если вы еще этого не сделали, поскольку это является основой большинства веб-фреймворков, включая Ruby на Rails.

Ответ 4

Мне кажется, что этот сайт, возможно, не лучший способ изучить Ruby on Rails. Rails действительно отлично подходит для приложений CRUD (приложений, которые позволяют пользователям создавать, считывать, обновлять и удалять записи в базе данных). Поскольку ваш сайт выглядит все статическими страницами, за исключением раздела "Связаться с нами" (который я предполагаю, это форма, которая отправляет электронное письмо с какой-то страницей подтверждения), вы на самом деле собираетесь бороться с "Путь рельсов".

В идеале в такой ситуации вы можете просто выбросить все ваши статические страницы в общедоступный/каталог и сделать быстрый Rails-эшафот для страницы "Связаться с нами".

Но при этом вы не закончите готовый проект, похожий на типичное приложение Ruby on Rails, и в худшем случае вам может быть нужно "отучить" или, по крайней мере, "переучивать" много аспектов программирования Rails.

Я думаю, что создание CRUD-приложения с несколькими ресурсами (канонический "Rails blog за 15 минут" - отличное начало. узнайте больше, практикуя соглашения Rails и видя вид рабочего процесса и приложения, которое действительно позволяет Rails сиять.

Затем, когда придет время создать еще один, в основном статический веб-сайт, вы точно узнаете, что вам нужно сделать, чтобы пойти по нему.

Мои 2 цента, во всяком случае.

Ответ 5

Начните с Мефисто. Это даст основу для достижения вашей цели довольно быстро... иначе вы можете просто похудеть, изучая вещи, связанные с созданием веб-сайта рельсов.

Ответ 7

Я должен рекомендовать Ramaze. Если вы уже знаете Ruby, но еще не знаете Rails, Ramaze лучше подходит вам, потому что он "ближе к дому", поскольку приложения Ramaze являются чистыми (r) Ruby.

Для вашего доступа к БД вы получаете выбор ORM. Sequel наиболее популярен среди Ramazers, но там также DataMapper и M4DBI.

Как сказал Алан Алави: "Вы должны ознакомиться с MVC, но это можно сделать, просто погрузившись в воду и загрязнив руки".