模型类中的枚举抛出“NoMethodError”

时间:2014-08-08 23:49:12

标签: ruby-on-rails ruby activerecord enums

我搜索了网络,但是无法弄清楚为什么会出现这个错误:

NoMethodError (undefined method `status' for #<Class:0x007f89f3

我在模型中定义了枚举:

class BookEntryAssignment < ActiveRecord::Base
  enum status: [:pending, :"in-progress", :completed, :approved]
  after_initialize :set_default_status, :if => :new_record?

  def set_default_status
    self.status ||= :pending
  end
end

我在尝试创建选择列表时收到错误:

f.select(:status, BookEntryAssignment.status.keys.map {|status| [status.titleize,status] if(!status.eql'approved')}, {:class => 'form-control'})

我不知道为什么会这样。这可能是我的一个非常愚蠢的错误,但无法弄清楚。

1 个答案:

答案 0 :(得分:2)

根据http://edgeapi.rubyonrails.org/classes/ActiveRecord/Enum.html

上的文档尝试BookEntryAssignment.statuses