How: Ruby on Rails для создания базового сайта
Я студент-компас, который хочет немного узнать о веб-разработке - я лучше всего учусь. Я знаю базовый html/css/php/javascript/xml, но поскольку Ruby является одним из моих любимых языков сценариев, я решил, что изучу Ruby on Rails.
Я хотел бы создать базовый веб-сайт для клуба друзей в школе, который просто предоставляет информацию об их организации и услугах, которые они предлагают, и иметь на нем панель администратора, содержащую очень базовую систему инвентаризации (элемент, номер в инвентаре, стоимость - это), чтобы узнать Ruby on Rails. Я буду размещать его на компьютере в университетском городке, поэтому мне не нужно беспокоиться о хостинге.
Это может показаться немного глупым, но, как человек, который никогда не создавал сайт, мне было интересно, как именно это происходит с рельсами - например, как я могу сделать основной макет для основной части сайта - - с такими вещами, как "Главная, О нас, Услуги, Контакт, Исполнительный директор клуба" наверху? Должен ли я сделать это в html и поместить его в раздел "просмотр"? Учебники, которые я прочитал на рельсах (Getting Started With Rails), фактически делают базовую систему инвентаризации легкой, по сравнению с этой частью, используя много встроенной функциональности Rails и лесов. Документация Rails немного путается.
Ответы
Ответ 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
Начните с Мефисто. Это даст основу для достижения вашей цели довольно быстро... иначе вы можете просто похудеть, изучая вещи, связанные с созданием веб-сайта рельсов.
Ответ 6
С простым сайтом я бы выбрал Ruby micro-framework. Мне нравятся три: Sinatra, Ramaze или _why 4k Camping (получите один с исправлены ошибки). RoR будет излишним.
Ответ 7
Я должен рекомендовать Ramaze. Если вы уже знаете Ruby, но еще не знаете Rails, Ramaze лучше подходит вам, потому что он "ближе к дому", поскольку приложения Ramaze являются чистыми (r) Ruby.
Для вашего доступа к БД вы получаете выбор ORM. Sequel наиболее популярен среди Ramazers, но там также DataMapper и M4DBI.
Как сказал Алан Алави: "Вы должны ознакомиться с MVC, но это можно сделать, просто погрузившись в воду и загрязнив руки".