- Проект должен быть выполнен за месяц и очень чувствителен ко времени. Достаточно ли одного месяца для обучения и создания веб-сайта в RoR?
Если это чувствительно ко времени, придерживайтесь того, что вы знаете ... Тем не менее, в Rails есть много плагинов для обработки таких вещей, как загрузка изображений, которые могут сэкономить вам много времени. В Rails есть «генераторы скаффолдов», которые создают базовые CRUD-приложения в одной команде:
./script/generate scaffold title:text description:text when:datetime
.. будет генерировать контроллеры / представления для создания / редактирования / удаления элементов. Затем вы можете легко обернуть вокруг него более привлекательный HTML-код, добавить аутентификацию (через restful_authentication ), и вы можете получить законченное приложение через несколько часов.
- Написание прямых SQL-запросов - одна из моих сильных сторон, и я хотел бы использовать ее. Я слышал, что использование RoR - это боль, если я пишу запросы SQL напрямую. Это правда? Или я могу просто сказать выполнить запрос, дать мне результаты (в виде списка или словаря), а затем я скажу вам, как их отобразить?
Существует очень немного ситуаций, когда вам нужно писать SQL с ActiveRecord, но вы можете. RoR по-прежнему является кодом Ruby, поэтому вы всегда можете использовать библиотеку MySQL и покончить с ActiveRecord, если вам действительно нужно написать сырой SQL (но, опять же, вы почти наверняка этого не сделаете)
- Я слышал, что RoR выполняет объединения в памяти и не использует возможности, предоставляемые базой данных. Это правильно?
Нет причин, по которым ActiveRecord не может выполнять JOIN через SQL-запросы, ActiveRecord :: Associations :: ClassMethods упоминает, что ассоциации выполняются через JOIN.
Кроме того, даже если он выполняет JOINs через память, он работает превосходно, несмотря на то, что долго существовал Rails ..
- Мне нужно создать сайт, который отображает много изображений, видео и Java-апплетов. Не помешает ли RoR моей способности сделать это?
Нет. Это всего лишь кусочки HTML, которые Rails может выводить так же легко, как и любой другой фреймворк.
- Я в порядке, используя PHP-фреймворк. Это плохая идея? Если нет, то какая среда PHP ближе всего к Rails с точки зрения удобства программирования.
Абсолютно. Если вы не используете Rails, используйте PHP-фреймворк!
Я бы рекомендовал не выбирать фреймворк, основанный на том, «насколько он близок к Rails». PHP - не Ruby. Попытка «портировать» (в некотором роде) фреймворк на другой язык редко работает, равно как и написание фреймворка для этого языка.
Как я прокомментировал ответ Чака, «CodeIgniter и Zend - хорошие веб-фреймворки PHP. CakePHP - хорошая имитация Ruby on Rails» ..
Я обнаружил, что CodeIgniter гораздо больше похож на PHP (в хорошем смысле), его документация также является моим любимым из всех проектов, которые я использовал!
Zend Framework очень модульный, вы можете добавить бит Zend в существующее PHP-приложение или использовать его систему маршрутизации MVC.
CakePHP, похоже, пытается заставить PHP работать как Ruby, а не создает среду, которая прекрасно вписывается в PHP.
Все, что сказано, причина, по которой вы используете Ruby on Rails, - это сообщество (и, следовательно, все плагины и тому подобное, которые вращаются вокруг него).
Например, плагин paperclip чрезвычайно упрощает форму загрузки изображений (вместе с миниатюрами). Чтобы использовать его, вы добавляете (к вашей модели):
has_attached_file :photo, :styles => {:thumb=> "100x100#", :small => "150x150>" }
Затем, по вашему мнению, где вы хотите разместить форму загрузки, добавьте:
<% form_for :user, :html => { :multipart => true } do |f| %>
<%= f.file_field :photo%>
<% end %>
Вот и все.
Я бы порекомендовал провести день, делая что-то простое в Rails. Существует бесчисленное множество великолепных учебных пособий ( Railscasts - хороший, случайный пример) и множество книг по нему. Посмотрите, нравится ли вам это, если нет, попробуйте CodeIgniter, Zend или CakePHP (или Django, или Merb, или ... Просто не тратьте целый месяц на попытки фреймворков!)