Open jayceef opened 7 years ago
@jayceef I haven't used Rails 5 but it looks like the not initialized
message comes from an inspect method that is checking if @attributes
exist on the model. (see here). My guess is you need to implement an initialize
method of your own and call super.
Having said that, I don't think it's a good idea to mix Virtus and ApplicationRecord
/ActiveRecord
. I've had luck using it with ActiveModel
but it's pretty tricky.
I have a normal class in my Rails 5 app:
class Routine < ApplicationRecord belongs_to :user end
irb: a= Routine.new(:elevation => 2343) => #<Routine:0x007ff2a19c2ea8 elevation: 2343
But when I add the Virtus gem the class doesn't get initialized:
class Routine < ApplicationRecord include Virtus.model belongs_to :user attribute :elevation, Integer end
irb: ad = Routine.new(:elevation => 133) =>< Routine:0x007ff29e860e78 not initialized>