2016-09-30 4 views
0

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

Эти переменные должны быть установлены перед всеми действиями и взяты из базы данных .

Каков наилучший способ для этого?

+0

переменные, хранящиеся в базе данных? плохой IMO –

+0

Да, переменные в базе данных – Gediminas

+0

@AndreyDeineko: hm? Почему ты так думаешь? –

ответ

1

A перед действием в вашем ApplicationController можно установить переменные.

class ApplicationController < ActionController 
    before_action :set_variables # before_actions in ApplicationController always come first 

    def set_variables 
    @variable1 = Model.find(x).value # Will be available everywhere for the life of the request 
    ... 

Но могли бы вы предоставить немного больше контекста, поскольку это может быть неправильный подход. Они могут быть лучше, чем константы, определенные в файлах среды, в зависимости от требований.

+0

спасибо за ответ. Он работает в моем развитии, но не в производстве. В производстве @ variable1 равен нулю. Не могу понять, почему. Для теста į просто установите '@ variable1 = 1' на application_controller ... Вот почему я задал вопрос, чтобы убедиться, что он идет по правильному пути, и теперь подтвердил, что это все еще обрабатывает эту ошибку :)) – Gediminas

+0

Это будет предлагать ваши в базе данных отсутствует соответствующее значение. – Matt

+0

для теста Я его не использую. Только вручную определяется '@ variable1 = 1' – Gediminas

Смежные вопросы