Направляющие 3 загрузки всех моделей на запуске

Мне смешали метод класса в ко всем моим моделям. метод называют, когда образцовый класс оценен. к сожалению (для меня), это, кажется, по запросу, каждый раз, когда модель необходима в ENV разработки, как могут иметь направляющие, загружают все модели при запуске? это даже желательно?

class Foo < ActiveRecord::Base
  include Acl
  register_acl # i need this to be called for all models at start up
end

В основном register_acl берет несколько аргументов "действий", что модель хотела бы быть доступом, которым управляют. Предположим, что одно из действия Foo, "справляются", и система должна знать об этом действии при запуске. Я думаю в модели, самое естественное место, чтобы иметь эту логику.

спасибо!

12
задан janechii 12 June 2010 в 15:37
поделиться

1 ответ

В концептуальных моделях MVC не предполагается, что они действуют сами по себе, т.е. они должны действовать только тогда, когда контроллер отправляет им сообщение (например, @ foo.register_acl). Экземпляры модели даже не должны существовать, пока они не будут созданы контроллером.

Чего вы пытаетесь достичь с помощью метода register_acl?

Если вам действительно нужно что-то выполнить при создании объекта, вы можете использовать метод initialize (), который вызывается всякий раз, когда создается объект Ruby.

Однако, если вам нужна модель для самостоятельного выполнения некоторого кода, вы, скорее всего, столкнетесь с запахом кода и вам нужно что-то изменить в своем приложении.

0
ответ дан 2 December 2019 в 06:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: