В настоящее время у меня есть модель Attend, в которой будет столбец статуса, а в этом столбце статуса будет только несколько ценности для него. STATUS_OPTIONS = {: yes,: no,: might}
1) Я не уверен, как я могу проверить это до того, как пользователь вставит Attend? По сути, перечисление в java, но как я могу сделать это в рельсах?
Для определения динамического поведения, можно использовать in: :method_name
нотация:
class Attend < ActiveRecord::Base
enum status: [:yes, :no, :maybe]
validates :status, inclusion: {in: :allowed_statuses}
private
# restricts status to be changed from :no to :yes
def allowed_statuses
min_status = Attend.statuses[status_was]
Attend.statuses.select { |_, v| v >= min_status }.keys
end
end