Rails постоянный поиск - PullRequest
       2

Rails постоянный поиск

0 голосов
/ 15 марта 2011

У меня вопрос по настройке констант в проекте Rails.

Из книги Дэна Чака Enterprise Rails он объясняет, что постоянный код поиска, как показано ниже, выполняется только один раз при запуске приложения. Однако, глядя на журнал, я думаю, что он запускается каждый раз, когда я использую константу.

class Role < ActiveRecord::Base
  USER = Role.find_by_key('user')
  ADMIN = Role.find_by_key('admin')
end

Это определенно позволяет более чистый код, поскольку я могу сделать что-то вроде:

current_user.role = Role::ADMIN

В качестве альтернативы я прочитал о ActiveSupport::Memoizable, но я хочу подтвердить, что эта настройка приводит к поиску нескольких дБ, прежде чем менять код.

Спасибо за ваш вклад!

Ответы [ 2 ]

5 голосов
/ 15 марта 2011

Этот код будет выполняться только один раз при каждой загрузке вашей среды. Это часто происходит в средах разработки и тестирования, но только один раз каждый раз, когда сервер приложений создается в рабочей среде.

2 голосов
/ 15 марта 2011

Как насчет размещения его в вашем config / initializers / constants.rb?

Это гарантирует, что он будет вызываться только один раз при запуске приложения

просто поставь

USER = Role.find_by_key('user')
ADMIN = Role.find_by_key('admin')

и вы можете использовать константу USER / ADMIN в своем приложении

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...