- From: Greg Lappen <greg@lapcominc.com>
- Date: Tue, 1 Feb 2011 15:27:04 -0500
- To: Ben Lavender <blavender@gmail.com>
- Cc: Daniel Gagne <danny@dannygagne.com>, public-rdf-ruby@w3.org
- Message-ID: <AANLkTi=T2R7mvJxYPYCorQu21eKvrTqMP6Pbbi0sGK+c@mail.gmail.com>
Actually, type => :'OpenMedia::Schema::SKOS::Concept' did the trick. I didn't see the leading colon making the whole thing a symbol. Thanks! Greg On Tue, Feb 1, 2011 at 3:06 PM, Greg Lappen <greg@lapcominc.com> wrote: > Thanks for the suggestions. I did try both of those, which failed as soon > as the ConceptScheme class is loaded. > > > On Tue, Feb 1, 2011 at 3:03 PM, Ben Lavender <blavender@gmail.com> wrote: > >> You infer correctly that it's a class loader issue; I haven't tested >> Spira with rails. Danny is correct in that a more specific reference >> to the class is probably required. >> >> Ben >> >> On Tue, Feb 1, 2011 at 8:55 PM, Daniel Gagne <danny@dannygagne.com> >> wrote: >> > 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 20:27:57 UTC