我嘗試了rails 4.1的新枚舉特性,並且遇到了一些麻煩。Rails 4.1枚舉:enum.status = nil
我的模型看起來是這樣的:
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"
我不明白這一點...
我有一個類似的問題:爲什麼我的枚舉值總是解決爲零? @ WillKoehler的回答訣竅。 – plusjeff