I usually include DataMapper::Resource outside of the class/module eval.

    base.send :include, DataMapper::Resource

https://github.com/ronin-ruby/ronin/blob/master/lib/ronin/model/model.rb
https://github.com/ronin-ruby/ronin/blob/master/lib/ronin/model/has_name.rb

On 05/30/2013 10:30 AM, Paul wrote:
> Hi,
>
> I have two models that share some of the same attributes so I wanted
> to setup a single table inheritance structure.  After doing some
> research, I found out that I can use module to achieve the same by
> doing the following instead:
>
> module CommonFields
>   def self.included base
>     base.class_eval do
>       include DataMapper::Resource
>
>       property :type, base::Discriminator
>       property :enable_feature1, base::Boolean, :default => false
>       property :enable_feature2, base::Boolean, :default => false
>     end
>   end
> end
>
> class A
>       include CommonFields
>
>       property: title, String
> end
>
> class B
>       include CommonFields
> end
>
> However, when I do rake db:automigrate I get:
>
> undefined method `properties' for CommonFields:Module
> /usr/local/rvm/gems/ruby-1.9.2-p290/gems/dm-core-1.2.0/lib/dm-core/associations/relationship.rb:252:in
> `parent_key'
>
> Any ideas?
>
> Thanks,
>
> Paul
> -- 
> You received this message because you are subscribed to the Google
> Groups "DataMapper" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to datamapper+unsubscr...@googlegroups.com.
> To post to this group, send email to datamapper@googlegroups.com.
> Visit this group at http://groups.google.com/group/datamapper?hl=en.
> For more options, visit https://groups.google.com/groups/opt_out.
>  
>  


-- 
Blog: http://postmodern.github.com/
GitHub: https://github.com/postmodern
Twitter: @postmodern_mod3
PGP: 0xB9515E77

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to