I have a Model that has an enum as attribute.
class ApplicationLetter < ActiveRecord::Base
belongs_to :user
belongs_to :event
validates :user, :event, presence: true
enum status: {accepted: 1, rejected: 0, pending: 2}
end
As well as a factory that generates this model and sets a value for the enum
FactoryGirl.define do
factory :application_letter do
motivation "motivation"
user
event
status :accepted
end
end
In a controller test I want to get valid attributes through the factory
let(:valid_attributes) { FactoryGirl.build(:application_letter).attributes }
and create a application with these attributes.
application = ApplicationLetter.create! valid_attributes
But I get the following error:
ArgumentError: '1' is not a valid status
Why is status interpreted as string? If I change the status in the factory I get the same error, but with the right corresponding number.