Wo soll ich konstante Daten speichern und dann in Rails referenzieren?

8

Ich habe eine Reihe von Daten, z. B. Zeiten (7.00 Uhr, 7.30 Uhr usw.), die an einigen Stellen gespeichert und referenziert werden sollen.

1) Wo sollte ich diese Daten speichern? Ich dachte ursprünglich in meiner DB (ich benutze Mongoid), aber ich bin mir nicht sicher, ob das über töten ist.

2) Wie würde ich darüber referieren? Nehmen wir an, aus einem Dropdown-Menü.

    
sevens 08.09.2012, 12:28
quelle

5 Antworten

5

In dieser Situation erstelle ich ein Constants -Modul in lib:

%Vor%

Dann greife ich darauf zu, wo immer ich brauche:

%Vor%

Hinweis: Achten Sie darauf, libs zu Ihrem Autoload-Pfad in der Konfigurationsdatei hinzuzufügen.

    
apneadiving 08.09.2012, 13:04
quelle
2

Ich bevorzuge es, diese Art von Daten auf das Modell zu übertragen, mit dem sie am engsten verbunden ist. Wenn die Zeiten in Ihrem Beispiel die Zeiten zum Ausführen einer Sicherung waren, fügen Sie sie in das Backup -Modell ein, und zwar mit dem Rest des mit Sicherungen verbundenen Verhaltens:

%Vor%

Ich habe auch den "big bucket of constants" -Ansatz verwendet, aber ich würde ihn nur verwenden, wenn es wirklich keinen relevanteren Platz für die Konstanten gibt.

    
Brandan 08.09.2012 13:25
quelle
2
___ qstnhdr ___ Wo soll ich konstante Daten speichern und dann in Rails referenzieren? ___ answer12331114 ___

Ich bevorzuge es, diese Art von Daten auf das Modell zu übertragen, mit dem sie am engsten verbunden ist. Wenn die Zeiten in Ihrem Beispiel die Zeiten zum Ausführen einer Sicherung waren, fügen Sie sie in das config/app_constants.yml -Modell ein, und zwar mit dem Rest des mit Sicherungen verbundenen Verhaltens:

%Vor%

Ich habe auch den "big bucket of constants" -Ansatz verwendet, aber ich würde ihn nur verwenden, wenn es wirklich keinen relevanteren Platz für die Konstanten gibt.

    
___ answer12331608 ___

Es gibt ein Rails-Casting für genau dieses Problem. Sie können es hier sehen:

Ссылка

    
___ answer12334262 ___

Ich habe am Ende eine "global_constants.rb" Datei in "/ config / initializers" mit dem folgenden Code erstellt:

%Vor%

Dann habe ich die Daten mit lib/app_constant.rb aufgerufen, speziell für die Auswahlbox war der Code: app_constants.yml

Viele der Antworten hier scheinen durchführbar zu sein, und ich vermute, dass sie alle richtig sind, um das zu tun, was ich brauchte.

    
___ antwort12331390 ___

Für solche Anforderungen bevorzuge ich

1.) Erstellen Sie ein AppConstant.get_time_list

Code hier

%Vor%

2. Erstellen Sie unter %code%

%Vor%

3. Rufen Sie es überall an wie

%Vor%

Damit müssen Sie nur Änderungen an einem einzigen sauberen Ort ( %code% ) vornehmen und werden überall in Ihrer Anwendung reflektiert, wo auch immer %code% verwendet wird

    
___ tag123rubyonrails ___ Ruby on Rails ist ein Open-Source-Full-Stack-Webanwendungsframework, das in Ruby geschrieben wurde. Es folgt dem populären MVC-Framework-Modell und ist bekannt für seinen "convention over configuration" -Ansatz für die Anwendungsentwicklung. ___ tag123rubyonrails3 ___ Ruby on Rails ist ein in Ruby geschriebenes Open-Source-Web-Entwicklungs-Framework. Ruby on Rails folgt dem Prinzip der Konvention über die Konfiguration und befreit Sie davon, Dinge neu erfinden zu müssen, um produktiv zu bleiben. Verwenden Sie dieses Tag nur für Rails 3-spezifische Fragen und markieren Sie diese Fragen [ruby-on-rails]. ___ answer12330946 ___

In dieser Situation erstelle ich ein %code% -Modul in lib:

%Vor%

Dann greife ich darauf zu, wo immer ich brauche:

%Vor%

Hinweis: Achten Sie darauf, %code% zu Ihrem Autoload-Pfad in der Konfigurationsdatei hinzuzufügen.

    
___ tag123mongoid ___ Mongoid ist der offizielle Ruby Object-Document-Mapper (ODM) für MongoDB. ___ qstntxt ___

Ich habe eine Reihe von Daten, z. B. Zeiten (7.00 Uhr, 7.30 Uhr usw.), die an einigen Stellen gespeichert und referenziert werden sollen.

1) Wo sollte ich diese Daten speichern? Ich dachte ursprünglich in meiner DB (ich benutze Mongoid), aber ich bin mir nicht sicher, ob das über töten ist.

2) Wie würde ich darüber referieren? Nehmen wir an, aus einem Dropdown-Menü.

    
___
AnkitG 08.09.2012 14:00
quelle
2

Es gibt ein Rails-Casting für genau dieses Problem. Sie können es hier sehen:

Ссылка

    
Max 08.09.2012 14:29
quelle
1

Ich habe am Ende eine "global_constants.rb" Datei in "/ config / initializers" mit dem folgenden Code erstellt:

%Vor%

Dann habe ich die Daten mit Constants::BUSINESS_HOURS aufgerufen, speziell für die Auswahlbox war der Code: <%= f.input :hrs_op_sun_open, :collection => Constants::BUSINESS_HOURS %>

Viele der Antworten hier scheinen durchführbar zu sein, und ich vermute, dass sie alle richtig sind, um das zu tun, was ich brauchte.

    
sevens 08.09.2012 20:37
quelle