W3C home > Mailing lists > Public > public-rdf-ruby@w3.org > February 2011

Re: Issue with Spira has_many

From: Daniel Gagne <danny@dannygagne.com>
Date: Tue, 1 Feb 2011 14:55:20 -0500
Message-ID: <AANLkTimXcuYC3gJwn=XPupGfQUVaQDSQ_a5MmezzNMqj@mail.gmail.com>
To: Greg Lappen <greg@lapcominc.com>
Cc: public-rdf-ruby@w3.org
it looks like it can't find the symbol perhaps try

type => :'OpenMedia::Schema::SKOS::Concept'

or

type => OpenMedia::Schema::SKOS::Concept

danny

On Tue, Feb 1, 2011 at 2:49 PM, Greg Lappen <greg@lapcominc.com> wrote:
> Hello again everyone,
> I am now attempting to do some integration of RDF with our Ruby on Rails
> application, and found the Spira project which I have to say is just awesome
> - it's a perfect fit for what we want to do.  I'm having a small problem
> though with getting relationships between our Spira resources to work.  I
> basically have one class, and it is going to "have many" of another class.
>  The subject matter happens to be SKOS concept and concept schemes.  Here's
> the basic code:
> in app/models/open_media/schema/skos/concept.rb:
> class OpenMedia::Schema::SKOS::Concept
>   include Spira::Resource
>
>   default_source :types
>   base_uri "http://data.openmedia.org/"
>   type SKOS.Concept
>   property :label, :predicate=>SKOS.label, :type=>XSD.string
> end
> in app/models/open_media/schema/skos/concept_scheme.rb:
> class OpenMedia::Schema::SKOS::ConceptScheme
>   include Spira::Resource
>
>   default_source :types
>   base_uri "http://data.openmedia.org/"
>   type SKOS.ConceptScheme
>   property :label, :predicate=>SKOS.prefLabel, :type=>XSD.string
>   has_many :top_concepts, :predicate=>SKOS.hasTopConcept, :type=>:Concept
> end
> So with the has_many type being the symbol :Concept, I get the following
> error:
> ArgumentError: OpenMedia::Schema::SKOS is not missing constant Concept!
> from
> /Users/greg/.rvm/gems/ree-1.8.7-2010.02@openmedia/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:479:in
> `load_missing_constant'
> from
> /Users/greg/.rvm/gems/ree-1.8.7-2010.02@openmedia/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:183:in
> `const_missing'
> from
> /Users/greg/.rvm/gems/ree-1.8.7-2010.02@openmedia/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:181:in
> `each'
> from
> /Users/greg/.rvm/gems/ree-1.8.7-2010.02@openmedia/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:181:in
> `const_missing'
> from
> /Users/greg/.rvm/gems/ree-1.8.7-2010.02@openmedia/gems/spira-0.0.11/lib/spira/resource/dsl.rb:209:in
> `const_get'
> from
> /Users/greg/.rvm/gems/ree-1.8.7-2010.02@openmedia/gems/spira-0.0.11/lib/spira/resource/dsl.rb:209:in
> `qualified_const_get'
> from
> /Users/greg/.rvm/gems/ree-1.8.7-2010.02@openmedia/gems/rdf-0.3.1/lib/rdf/ntriples/reader.rb:184:in
> `inject'
> from
> /Users/greg/.rvm/gems/ree-1.8.7-2010.02@openmedia/gems/spira-0.0.11/lib/spira/resource/dsl.rb:209:in
> `each'
> from
> /Users/greg/.rvm/gems/ree-1.8.7-2010.02@openmedia/gems/spira-0.0.11/lib/spira/resource/dsl.rb:209:in
> `inject'
> from
> /Users/greg/.rvm/gems/ree-1.8.7-2010.02@openmedia/gems/spira-0.0.11/lib/spira/resource/dsl.rb:209:in
> `qualified_const_get'
> from
> /Users/greg/.rvm/gems/ree-1.8.7-2010.02@openmedia/gems/spira-0.0.11/lib/spira/resource/dsl.rb:178:in
> `classize_resource'
> from
> /Users/greg/.rvm/gems/ree-1.8.7-2010.02@openmedia/gems/spira-0.0.11/lib/spira/resource/dsl.rb:142:in
> `build_value'
> from
> /Users/greg/.rvm/gems/ree-1.8.7-2010.02@openmedia/gems/spira-0.0.11/lib/spira/resource/instance_methods.rb:91:in
> `reload_attributes'
> from
> /Users/greg/.rvm/gems/ree-1.8.7-2010.02@openmedia/gems/rdf-0.3.1/lib/rdf/mixin/queryable.rb:70:in
> `each'
> from
> /Users/greg/.rvm/gems/ree-1.8.7-2010.02@openmedia/gems/rdf-0.3.1/lib/rdf/mixin/queryable.rb:70:in
> `grep'
> from
> /Users/greg/.rvm/gems/ree-1.8.7-2010.02@openmedia/gems/rdf-0.3.1/lib/rdf/mixin/queryable.rb:70:in
> `each'
> Without the relationship between them, both classes work great.  Am I right
> in thinking it's a disagreement between Rails class loading mechanism and
> how Spira is trying to load the has_many type?  I can reference
> OpenMedia::Schema::SKOS::Concept fine in rails console, but as soon as I
> save the concept scheme with a concept in the has_many, I get this error.
>  Any ideas?  I was prepared to fix this and submit a patch, but an hour
> later, no such luch.  Thanks!
> Greg
Received on Tuesday, 1 February 2011 19:55:52 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 1 February 2011 19:55:53 GMT