Tôi đang chạy Rails 4.Tiếp cận hằng số mô hình cụ thể trong một cái nhìn Rails
Tôi có một mô hình gọi là Challenge
, và trong cơ sở dữ liệu của tôi, tôi đang lưu trữ các status
của mỗi thách thức về mặt 0-4.
Nhưng 0-4 không phải là rất ngữ nghĩa vì vậy tôi muốn xác định một vài biến (Tôi giả định một hằng số) để trong bất kỳ điều khiển hoặc xem tôi có thể truy cập bằng cách gọi số hằng số:
# Challenge.rb
class Challenge < ActiveRecord::Base
SUGGESTED = 0
APPROVED = 1
OPEN = 2
VOTING = 3
CLOSED = 4
end
tôi muốn truy cập những quan điểm của tôi:
# challenge/_details.html.erb
<% if @challenge.status == CLOSED %>
Challenge is closed, broheim!
<% end %>
Nhưng quan điểm của tôi không muốn để render.
uninitialized constant ActionView::CompiledTemplates::CLOSED
Cách tốt nhất để đặt biến trạng thái của tôi để chúng có thể được truy cập ở mọi nơi tôi cần chúng là gì? (Tức là, bất cứ nơi nào biến @challenge
hiện diện)
tôi khuyên bạn nên sử dụng một Hash là một hằng số trong trường hợp này. Tại sao? Bởi vì nó sẽ làm giảm số lượng các hằng số khác nhau của mô hình của bạn. Một cái gì đó như: 'STATUSES = {đề xuất: 0, được chấp thuận: 1, mở: 2, v.v. ..}' và truy cập vào nó như 'Challenge :: STATUSES.approved' – MrYoshiji