Это сводится к тому, имеет ли ЦП в Вашей машине, VT укусил (Виртуализация), и BIOS позволяет Вам включить его. Например, мой ноутбук Core 2 Duo , который способен к использованию этого. Однако мой BIOS не позволяет мне включить его.
Примечание, что я считал, что включение этой функции может замедлить нормальное функционирование на 10-12%, который является, почему это обычно выключается.
Есть несколько способов подойти к этому, но логика определенно не принадлежит точке зрения. У вас есть различные модели, связанные друг с другом в четкой иерархии, причем вершиной иерархии является модель Дома, если я правильно читаю ваше описание. В таком случае Я бы добавил соответствующий метод набора методов к модели Дома, который может состоять из вызовов методов расчета в моделях Помещений, связанных с данным экземпляром Дома, и по линии связи. Таким образом, соответствующие вычисления могут быть выполнены на каждом уровне, и, составив один или несколько методов на уровне модели Дома, вы получите чистый, выразительный и удобный в обслуживании способ работы с вычислениями.
Также нужно сделать еще одно. , было бы убедиться, что любые вычисления, которые могут быть выполнены БД. Например, если есть расчет, который модель Room может выполнять, просто запрашивая собственные данные, тогда непременно перенесите эту вычислительную нагрузку в базу данных, используя способность ActiveRecord вызывать такую логику расчета более низкого уровня. Дополнительные сведения см. В документации API .
Я бы очень внимательно посмотрел на нужную вам логику и посмотрел, как ее можно вставить в модель, поскольку она, вероятно, принадлежит именно этому месту, близко к фактическим данным расчетов, и внутри структур классов, которые представляют эти данные конкретно ; Я бы не стал создавать модель только для обработки логики вычислений, если вам действительно не нужно постоянно хранить вычисления по какой-то причине.
Я бы создал класс в RAILS_ROOT / lib / под названием, например, Calculator, и поместил бы туда код.
Классы в / lib / должны быть загружены в любом месте вашего приложения.
Вы также можете создать простой объект ruby в / app / models /. Нет причин, по которым все они должны наследовать от ActiveRecord :: Base
Хорошо, теперь я вижу опубликованный код. Я вижу, что в файле Calculator_controller нет вычислений, они в представлениях? Попробуйте такой подход:
Мой предыдущий ответ:
Если бизнес-логика довольно проста и используется только за этим веб-приложением, вы можете поместить ее в свое приложение / модели папку.
class MyCoolClass
def initialize(clues)
@other_things = OtherThing.all
end
def do_cool_thing; end
def calculate_coolness
@other_things.length
end
end
Затем в вашем контроллере
Все зависит от того, какие данные вы создаете. Как выглядит контроллер калькулятора?
Вы можете создавать свои собственные классы в / lib и использовать их в своих моделях, что может быть хорошим способом отделить логику от контроллера / помощников. Есть ли причина, по которой вы не могли добавить логику в модели?