Существует ActiveRecord Шаблон разработки и ActiveRecord направляющие Библиотека ORM , и существует также тонна копий для.NET и другие языки.
Это все разные вещи. Они главным образом следуют тому шаблону разработки, но расширяют и изменяют его многими различными способами, поэтому прежде чем кто-либо скажет, что "ActiveRecord Сосет", он должен быть квалифицирован путем высказывания "который ActiveRecord, существует "куча"?"
я только знаком с ActiveRecord направляющих, я попробую, обращаются ко всем жалобам, которые были предъявлены в контексте использования его.
@BlaM
проблема, которую я вижу с Активными Записями, что это - всегда примерно один Код таблицы
:
class Person
belongs_to :company
end
people = Person.find(:all, :include => :company )
Это генерирует SQL с LEFT JOIN companies on companies.id = person.company_id
, и автоматически генерирует объекты дочернего общества, таким образом, можно сделать people.first.company
, и он не должен поражать базу данных, потому что данные уже присутствуют.
@pix0r
свойственная проблема с Активной Записью состоит в том, что запросы базы данных автоматически сгенерированы и выполнены, чтобы заполнить объекты и изменить записи базы данных
Код:
person = Person.find_by_sql("giant complicated sql query")
Этому препятствуют, поскольку это ужасно, но для случаев, где просто и просто необходимо записать необработанный SQL, это легко сделано.
@Tim Sullivan
... и Вы выбираете несколько экземпляров модели, Вы в основном делаете "выбор * от..."
Код:
people = Person.find(:all, :select=>'name, id')
Это только выберет имя и столбцы ID от базы данных, все другие 'атрибуты' в отображенных объектах просто будут нолем, если Вы вручную не перезагрузите тот объект и так далее.
У вас должно получиться это достигается путем раскрытия Инструментария управления Windows в каждой виртуальной машине. Этот инструмент дает вам доступ к множеству системных данных, включая процессы, см. http://technet.microsoft.com/en-us/library/cc757287%28WS.10%29.aspx
Вы должны быть возможность открыть
одну из команд в предыдущей ссылке, чтобы получить информацию, которую вы ищете.
import wmi
c = wmi.WMI ()
for process in c.Win32_Process ():
print process.ProcessId, process.Name
Это можно сделать, открыв Инструментарий управления Windows в каждой виртуальной машине. Этот инструмент дает вам доступ к множеству системных данных, включая процессы, см. http://technet.microsoft.com/en-us/library/cc757287%28WS.10%29.aspx
возможность открыть
одну из команд в предыдущей ссылке, чтобы получить информацию, которую вы ищете.