Если вам нужно сделать то же самое с mongoid:
Model.all.rename(:old_field, :new_field)
UPDATE
В синтаксисе monogoid 4.0.0
есть изменение:
Model.all.rename(old_field: :new_field)
MVC является разделением model, view и controller — ничто больше, ничто меньше. Это - просто парадигма; идеал, который Вы должны иметь позади своего ума при разработке классов. Постарайтесь не смешивать код от этих трех категорий в один класс.
, Например, в то время как сетка таблицы представление должно, очевидно, представить данные, однажды показанные, это не должно иметь кода того, где получить данные из, или на что похожа его собственная структура ( модель ). Аналогично, в то время как это может иметь функцию для подведения столбца, фактическое подведение итогов, как предполагается, происходит в контроллер .
А 'сохранили файл' диалоговое окно ( представление ), в конечном счете передает путь, когда-то выбранный пользователем, на контроллер , который тогда спрашивает модель для данных и делает фактическое сохранение.
Это разделение обязанностей позволяет гибкость в будущем. Например, потому что представление не заботится о базовой модели, поддержка нескольких форматов файлов легче: просто добавьте образцовый подкласс для каждого.
Разделение проблем является biggy.
Способность дразнить эти компоненты независимо делает код легче к повторному использованию, и независимо протестируйте. Если Вы на самом деле не знаете, каков MVC, осторожны относительно попытки понять мнения людей, поскольку существует все еще некоторая конкуренция о том, что "Модель" (является ли это бизнес-объектами/Наборами данных/Таблицами данных или если это представляет базовый уровень служб).
я видел все виды реализаций, которые называют себя MVC, но не являются точно и как комментарии в шоу статьи Jeff, MVC является спорным моментом, что я не думаю, что разработчики будут когда-либо полностью согласовать.
А хороший раунд всех различных типов MVC доступен здесь .
Jeff имеет сообщение об этом, иначе я нашел некоторые полезные документы о веб-сайте Apple в учебных руководствах по Какао ( этот , например).
Я думаю, что другое преимущество использования шаблона MVC - то, что это открывает двери в другой подходы к дизайну, такие как MVP/предъявитель сначала и многие другой мВ* шаблоны.
Без этой фундаментальной сегрегации дизайна "компоненты" принятие этих методов было бы намного более трудным.
я думаю, что это помогает сделать Ваш код еще более основанным на интерфейсе.. Не только в рамках отдельного проекта, но и можно почти начать разрабатывать общие "представления", которые означают, что можно обработать партию по шаблону больше кода "пехотинца", используемого в приложениях. Например, очень абстрактное "представление данных", которое просто берет набор данных и бросает их в общее расположение сетки.
, Если я помню правильно, , это - довольно хороший подкаст на мВ* шаблоны (слушал его только что!)
Один довод "против", о котором я могу думать, - то, при необходимости в действительно быстром доступе к данным в представлении (например, игровые данные анимации как положения кости.) Это очень неэффективно для хранения слоя разделения в этом случае.
Иначе, для большинства других приложений, которые более управляемы данными, чем управляемая графика, она походит на логический способ управлять UI.
Если Вы следуете за stackoverflow подкастами, можно ли услышать Jeff (и Geoff?) обсуждают его величие. http://blog.stackoverflow.com/2008/08/podcast-17/ . Но помните, что использование этих отдельных слоев означает, что вещи легче в будущем - и тяжелее теперь. И слои могут делать вещи медленнее. И Вам, возможно, не понадобятся они. Но не позволяйте этому мешать Вам изучить то, что это - при создании больших, устойчивых, долговечных систем, это неоценимо.
Одним из основных преимуществ MVC, который здесь не упоминается, является то, что MVC предоставляет RESTful URL, которые позволяют SEO. Когда вы называете свои Контроллеры и Действия с умом, поисковым системам будет проще найти ваш сайт, если они только посмотрят на URL вашего сайта. Например, у вас есть веб-сайт по продаже автомобилей и страница, на которой отображаются доступные автомобили Lamborghini Veneno, вместо www.MyCarSale.com/product/6548 со ссылкой на страницу, которую вы можете выбрать www.MyCarSale. com / SportCar / Lamborghini-Veneno URL для целей SEO.
Здесь - хороший ответ на преимущества MVC, а здесь - статья Как создать оптимизированный для SEO URL.
Он разделяет Модель и Представление, управляемые Контроллером. Что касается Модели, Ваши Модели должны следовать ОО-архитектуре, будущие усовершенствования и другое обслуживание базы кода должны быть очень простыми, а база кода должна использоваться повторно.
Одна и та же модель может иметь любые виды, например, нет) Одна и та же информация может отображаться в виде различных графических представлений. Один и тот же вид может иметь разные номера моделей, например, разные детали могут быть показаны в виде одного графика, скажем, в виде гистограммы. Это то, что можно использовать как в View, так и в Model.
Улучшения в представлениях и другая поддержка новых технологий для построения представления могут быть легко реализованы.
Парню, который работает над дозой представления, не нужно знать о базовой базе кода Модели и ее архитектуре, наоборот, для модели.
! [Архитектура MVC] [1]
Модель-представление-контроллер (MVC) - это программный архитектурный шаблон для реализации пользовательских интерфейсов. Он разделяет данное программное приложение на три взаимосвязанные части, чтобы отделить внутреннее представление информации от того, как информация представляется или принимается от пользователя.