biegnę Rails 4.dostępu w widoku Rails
mam model o nazwie Challenge
, aw mojej bazy danych mam przechowywania status
każdego wyzwania w zakresie 0-4.
Ale 0-4 nie jest bardzo semantyczne więc chcę, aby zdefiniować kilka zmiennych (Jestem przy założeniu stałych), tak, że w każdym kontrolerze lub zobacz mogę uzyskać dostęp do numeru dzwoniąc stała:
# Challenge.rb
class Challenge < ActiveRecord::Base
SUGGESTED = 0
APPROVED = 1
OPEN = 2
VOTING = 3
CLOSED = 4
end
Chcę uzyskać dostęp do nich moim zdaniem:
# challenge/_details.html.erb
<% if @challenge.status == CLOSED %>
Challenge is closed, broheim!
<% end %>
Ale moim zdaniem nie chce uczynić.
uninitialized constant ActionView::CompiledTemplates::CLOSED
Jaki jest najlepszy sposób na ustawienie zmiennych statusu, aby można było uzyskać do nich dostęp wszędzie, gdzie ich potrzebuję? (Czyli wszędzie zmienna @challenge
jest obecny)
polecam używać Hash jako stała w tym przypadku. Czemu? Ponieważ zmniejszy to liczbę różnych stałych modelu. Coś jak: 'STATUSES = {proponowane: 0, zatwierdzone: 1, otwarte: 2, itd: ..}' i dostęp do niego jak 'Wyzwanie :: STATUSES.approved' – MrYoshiji