Ich bin mit Rails 4.Zugang modellspezifische Konstanten in einer Rails-Ansicht
Ich habe ein Modell Challenge
, und in meiner Datenbank Ich bin Speichern der status
jeder Herausforderung im Hinblick auf 0-4 genannt.
Aber 0-4 ist nicht sehr semantische so möchte ich ein paar Variablen definieren (Ich bin ein Konstanten angenommen wird), so dass in jedem Controller oder sehe ich durch den Aufruf der Konstante, die die Zahl zugreifen:
# Challenge.rb
class Challenge < ActiveRecord::Base
SUGGESTED = 0
APPROVED = 1
OPEN = 2
VOTING = 3
CLOSED = 4
end
ich möchte diese meiner Ansicht zuzugreifen:
# challenge/_details.html.erb
<% if @challenge.status == CLOSED %>
Challenge is closed, broheim!
<% end %>
Aber meiner Meinung nach will nicht machen.
Was ist der beste Weg, um meine Statusvariablen so einzustellen, dass auf sie überall zugegriffen werden kann, wo ich sie brauche? (Das heißt, an jedem Ort der @challenge
Variable vorhanden ist)
empfehle ich Ihnen in diesem Fall einen Hash als eine Konstante zu verwenden. Warum? Weil es die Anzahl der verschiedenen Konstanten Ihres Modells reduziert. Etwas wie: 'STATUSES = {vorgeschlagen: 0, genehmigt: 1, offen: 2, etc: ..}' und Zugriff darauf wie 'Challenge :: STATUSES.approved' – MrYoshiji