Fellow Stranger
Fellow Stranger

Reputation: 34013

Using Enum and want to access the stored integer value in the view

I'm using ActiveRecord's Enum to store the weekdays with the following:

enum weekday: %w(monday tuesday wednesday thursday friday saturday sunday)

When calling the attribute .weekday on the model instance I correctly get the weekday name, e.g. "monday".

How could I get the numeric value (i.e. 0) when I need that instead?

Upvotes: 4

Views: 1717

Answers (2)

pdobb
pdobb

Reputation: 18037

Use my_object[:weekday], or, if you're in the object, just self[:weekday].

UPDATE: OR (as found by Ms Numbers): .read_attribute_before_type_cast(:weekday)

Upvotes: 9

parreirat
parreirat

Reputation: 715

What you would rather want to do is this:

model_instance.read_attribute(:weekday)

Cleaner, simpler, straight to the point.

Upvotes: 3

Related Questions