Ich habe die neue Enum-Funktion von Schienen 4.1 versucht und habe einige Probleme damit.Schienen 4.1 Enums: enum.status = Null
Mein Modell sieht wie folgt aus:
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
Und wenn ich versuche, es so in meiner Ansicht zu verwenden:
.item{class: @report.status, data: {id: @report.id}}
ich in meinem Browser sehen dies werde
<div class="item" data-id="25">
Ich versuchte herauszufinden, was status
tatsächlich verwendet 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
Und nun einen Blick auf diese:
[22] pry(main)> Report.all.sample.attributes['status']
Report Load (0.2ms) SELECT `reports`.* FROM `reports`
=> "3"
ich es nicht bekomme ...
Ich hatte eine ähnliche Frage: Warum werden meine enum Werte immer als null aufgelöst? @ WillKoehlers Antwort hat es geschafft. – plusjeff