Синатра против Рельсов - PullRequest
65 голосов
/ 21 октября 2010

Я работал с некоторыми образцами Sinatra и Rails, но мне сложно разобраться, какие функции принадлежат какой технологии.

Что конкретно я получу, используя Sinatra / Rails? Это просто ActionPack / ActionView? Поправьте меня, если я ошибаюсь, но я МОГУ БЫТЬ просто использовать Webrick / Mongrel и подавать свои .erb файлы, верно? И я мог бы использовать технологию ActiveRecord в этих файлах и по-прежнему получать доступ к переменным записей, состоянию сеанса и переменным строки запроса, верно?

Итак, что я спрашиваю вас, ребята, если я начну с PHP-подобного сценария выше; Webrick + ERB + ActiveRecord, что я получу, используя Sinatra? И что я еще получу, используя Rails?

Ответы [ 2 ]

62 голосов
/ 22 октября 2010

Для Синатры это действительно почти как обертка вокруг Стойки. Поэтому сначала нужно спросить, в чем смысл Rack. Rack - это в основном спецификация того, как фреймворк должен возвращать результат, он может использовать то, что возвращается с любым веб-сервером, который поддерживает Rack. Так что это действительно уровень совместимости, который позволяет вам выбирать комбинацию фреймворк / сервер по желанию, не беспокоясь о том, будут ли они работать вместе. Если ваш фреймворк совместим с Rack, вы сможете развернуть его практически на любом сервере через Rack.

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

5 голосов
/ 21 октября 2010

Усилением Rails является ActionView / ActionPack. Но вы можете просто заменить на Mongrel / Erb. Это что-то другое.

Это все, что у вас есть, например, name_route или управление ошибками в вашей форме. Это все управление ресурсами и все плагины, как InheritedResources. Преимущество рельсов.

Есть такой инструмент, как среда Падрино, который поможет вам иметь всего этого помощника. Но это действительно спидер после всех плагинов активировать? Я так не думаю.

С Rails 3 Rails представляет собой полноценное Rack-приложение с большим количеством RackMiddleware. Вы можете просто отказаться от некоторого промежуточного программного обеспечения, чтобы увеличить свой отклик.

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