Method not inherit?

M

Manuel Manuelson

Hi,

I'm a newbie in Ruby and created this module:

require 'couchrest_model'
module RdfModelModule

class RdfModel < CouchRest::Model::Base
def rdf_schema
p 'hello'
end
end

end


When I create a new class based no this class like this:

require 'rdfmodelmodule'
class Mine < RdfModelModule::RdfModel
rdf_schema
end

I'm getting this error:
NoMethodError: undefined method `rdf_schema' for Mine:Class


This is a bit confusing! Why is rdf_schema not inherit by the 'Mine'
class??

Cheers,
Manuel
 
E

Eric Christopherson

Hi.

Hi,

I'm a newbie in Ruby and created this module:

require 'couchrest_model'
module RdfModelModule

=A0class RdfModel < CouchRest::Model::Base
=A0 =A0def rdf_schema
=A0 =A0 =A0p 'hello'
=A0 =A0end
=A0end

end


When I create a new class based no this class like this:

require 'rdfmodelmodule'
class Mine < RdfModelModule::RdfModel
=A0rdf_schema
end

I'm getting this error:
NoMethodError: undefined method `rdf_schema' for Mine:Class


This is a bit confusing! Why is rdf_schema not inherit by the 'Mine'
class??

It's because you are sending the "rdf_schema" message (trying to
invoke the method) on the *class* Mine. When you right code in a class
definition that isn't part of a method, as you did, that code is
executed in the context of the class; i.e. any methods you invoke will
be sent to the class object, instead of an instance of that class.
rdf_schema is an instance method, so you need an instance of Mine to
invoke it.

You could make rdf_schema a class method, and then your code would work:

class RdfModel < CouchRest::Model::Base
def self.rdf_schema # note "self."
p 'hello'
end
end

I'm not sure if that's what you want your code to do, though. The
other way would be to change the code in Mine so that it's inside an
instance method, as Daniel G. wrote.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,581
Members
45,057
Latest member
KetoBeezACVGummies

Latest Threads

Top