【发布时间】:2014-04-10 08:57:11
【问题描述】:
我尝试了rails 4.1的新枚举功能,但遇到了一些麻烦。
我的模型如下所示:
class Report < ActiveRecord::Base
after_save :notify_clients
before_update :update_progress
before_create do
self.status ||= 'started'
end
enum status: %w{started active fail success}
#...
end
如果我尝试在我的视图中这样使用它:
.item{class: @report.status, data: {id: @report.id}}
我会在我的浏览器中看到这个
<div class="item" data-id="25">
我试图找出 status 实际使用的 rails console:
[11] pry(main)> Report.all.sample.status
Report Load (0.3ms) SELECT `reports`.* FROM `reports`
=> nil
[12] pry(main)> Report.all.sample.status
Report Load (0.2ms) SELECT `reports`.* FROM `reports`
=> nil
[13] pry(main)> Report.all.sample.status
Report Load (0.3ms) SELECT `reports`.* FROM `reports`
=> nil
[14] pry(main)> Report.all.sample.status
Report Load (0.2ms) SELECT `reports`.* FROM `reports`
=> nil
现在看看这个:
[22] pry(main)> Report.all.sample.attributes['status']
Report Load (0.2ms) SELECT `reports`.* FROM `reports`
=> "3"
我不明白...
【问题讨论】:
-
我有一个类似的问题:为什么我的枚举值总是被解析为 nil? @WillKoehler 的回答成功了。
标签: activerecord enums ruby-on-rails-4.1