Синатра против рельсов

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

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

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

Ответ 1

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

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

Ответ 2

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

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

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

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