मैंने रेलों की नई enum फ़ीचर 4.1 की कोशिश की और इसके साथ कुछ परेशानीएं हैं।रेल 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"
मैं समझ नहीं है ...
मेरे पास एक समान प्रश्न था: मेरे enum मूल्यों को हमेशा शून्य के रूप में क्यों हल किया जा रहा है? @ विलकोहलर के जवाब ने चाल की। – plusjeff