Использование Синатры в Ruby

В предыдущей статье в этом серия статеймы говорили о том, что такое Синатра. В этой статье мы рассмотрим некоторый реальный функциональный код Sinatra, касаясь нескольких функций Sinatra, которые будут подробно рассмотрены в следующих статьях этой серии.

Прежде чем начать, вам нужно будет установить Sinatra. Установить Sinatra так же просто, как и любой другой драгоценный камень. У Sinatra есть несколько зависимостей, но ничего особенного, и у вас не должно возникнуть проблем с установкой на любую платформу.

$ gem install sinatra

Привет, мир!

Приложение Sinatra «Hello world» поразительно просто. Не считая обязательных строк, шебанга и пробела, это всего лишь три строки. Это не просто небольшая часть вашего приложения, например контроллер в приложении Rails, это все. Еще одна вещь, которую вы можете заметить, это то, что вам не нужно было запускать что-то вроде генератора Rails для генерации приложения. Просто вставьте следующий код в новый файл Ruby, и все готово.

#! / usr / bin / env ruby
требовать 'rubygems'
требовать "синатра"
получить '/' сделать
'Привет, мир!'
конец
instagram viewer

Конечно, это не очень полезная программа, это просто «Hello world», но даже более полезные приложения в Sinatra не намного больше. Итак, как вы запускаете это крошечное веб-приложение? Какой-то комплекс Сценарий / сервер команда? Нет, просто запустите файл. Это просто программа Ruby, запустите ее!

Инатра $ ./hello.rb
== Sinatra / 0.9.4 поднялся на 4567 этап разработки для резервного копирования из Mongrel

Пока не очень интересно. Он запустил сервер и привязан к порту 4567, так что продолжайте и укажите свой веб-браузер на http://localhost: 4567/. Вот твое сообщение "Hello world". Веб-приложения никогда не были такими простыми в Ruby.

Использование параметров

Итак, давайте посмотрим на что-то более интересное. Давайте сделаем приложение, которое приветствует вас по имени. Для этого нам понадобится параметр. Параметры в Синатре, как и все остальное, просты и понятны.

#! / usr / bin / env ruby
требовать 'rubygems'
требовать "синатра"
get '/ hello /: name' do
"Привет # {params [: name]}!"
конец

После внесения этих изменений вам нужно перезапустить приложение Sinatra. Убейте его с помощью Ctrl-C и запустите снова. (Есть способ обойти это, но мы рассмотрим это в следующей статье.) Теперь параметры просты. Мы сделали действие под названием /hello/:name. Этот синтаксис имитирует, как будут выглядеть URL-адреса, поэтому перейдите к http://localhost: 4567 / привет / Ваше имя чтобы увидеть это в действии.

/hello часть соответствует той части URL-адреса из сделанного вами запроса, и :имя будет поглощать любой другой текст, который вы даете, и помещать его в Титулы хеш под ключ :имя. Параметры просто так просто. Конечно, вы можете сделать гораздо больше, в том числе параметры на основе регулярных выражений, но это все, что вам нужно почти в каждом случае.

Добавление HTML

Наконец, давайте добавим в это приложение немного HTML. Sinatra вернет все, что получает от вашего обработчика URL-адресов в веб-браузер. Пока что мы только что вернули строку текста, но мы можем добавить туда HTML без проблем. Здесь мы будем использовать ERB, как в Rails. Есть и другие (возможно, лучшие) варианты, но это, пожалуй, самый знакомый, так как он идет с Ruby, и здесь все будет хорошо.

Во-первых, Синатра будет отображать вид расположение если таковой существует. Этот вид компоновки должен иметь Уступать заявление. Этот оператор yield будет захватывать выходные данные конкретного отображаемого представления. Это позволяет создавать макеты очень просто. Наконец, у нас есть Здравствуйте представление, которое генерирует фактическое приветственное сообщение. Это представление было выполнено с использованием эрб: привет вызов метода. Вы заметите, что нет отдельных файлов просмотра. Может быть, но для такого небольшого приложения лучше хранить весь код в одном файле. Хотя мнения разделяются в конце файла.

#! / usr / bin / env ruby
требовать 'rubygems'
требовать "синатра"
get '/ hello /: name' do
@name = params [: name]
эрб: привет
конец
__КОНЕЦ__
@@ layout





@@ Здравствуйте

Здравствуйте, !

И там у вас есть это. У нас есть полное, функциональное приложение hello world, содержащее около 15 строк кода, включая представления. В следующих статьях мы подробнее рассмотрим маршруты, способы хранения и извлечения данных и способы улучшения просмотра с помощью HAML.

instagram story viewer