I tried to reproduce the error but it works for me: (with slightly modified Customer to fit my ldap config)
http://gist.github.com/117884 On May 25, 10:38 am, kristian <[email protected]> wrote: > I have not used the ldap adapter yet, but with two databases the code > works. can please verify that this codehttp://gist.github.com/117398 > works for you as well. > > in the mean while I fix my ldap installation (got a bit mangled with > the last OS upgrade) and see if I can reproduce the problem. > > with regards > Kristian > > On May 23, 7:01 pm, fbettag <[email protected]> wrote: > > > class Customer > > include DataMapper::Resource > > > property :id, Serial, :field => "cn" > > property :name, String, :field => "o" > > property :unit, String, :field => "ou" > > > has n, :positions > > has n, :bills > > dn_prefix { |customer| "cn=#{customer.id}"} > > > treebase "ou=Customers" > > > ldap_properties do |customer| > > properties = { :objectclass => ["groupOfNames"] } > > properties > > end > > > def self.auto_upgrade!(args = nil) > > DataMapper.logger.warn("Skipping #{self.name}.auto_upgrade!") > > end > > > def self.default_repository_name > > :ldap > > end > > > end > > > class Position > > include DataMapper::Resource > > include DataMapper::Stamped > > > property :id, Serial > > property :name, String, :length => 100, :nullable => false > > property :category, String, :length => 40, :nullable => false > > property :text, Text, :nullable => false, :nullable => false > > property :note, String, :length => 255 > > > property :amount, BigDecimal, :nullable => false > > property :price, BigDecimal, :nullable => false > > > property :currency, String, :limit => 3..3, :nullable => > > false, :default => 'EUR' > > property :tax, BigDecimal, :nullable => false, :default => 19 > > > property :paynow, String, :limit => 10 > > property :outbound, Boolean, :nullable => false, :default => false > > property :sorting, Integer > > > belongs_to :customer > > > # property :customer_id, Integer, :nullable => false > > > def customer > > return nil unless self.customer_id > > DataMapper.repository(:ldap) do > > Customer.get(self.customer_id) > > end > > end > > > def customer=(c) > > self.customer_id = c.id if c > > end > > > belongs_to :bill > > > end > > > irb(main):002:0> Customer.first.positions > > ~ (0.000345) SET backslash_quote = off > > ~ (0.000401) SET standard_conforming_strings = on > > ~ (0.004327) SELECT "updated_at", "created_by_id", "created_at", > > "updated_by_id", "deleted_by_id", "id", "name", "category", "note", > > "amount", "price", "currency", "tax", "paynow", "outbound", "sorting", > > "customer_id", "bill_id" FROM "positions" WHERE ("deleted_at" IS NULL) > > AND ("customer_id" IN ('10010')) ORDER BY "id" > > NoMethodError: undefined method `positions_association' for > > nil:NilClass > > from /usr/lib64/ruby/gems/1.8/gems/dm-core-0.9.11/lib/dm-core/ > > associations/relationship.rb:106:in `send' > > from /usr/lib64/ruby/gems/1.8/gems/dm-core-0.9.11/lib/dm-core/ > > associations/relationship.rb:106:in `get_children' > > from /usr/lib64/ruby/gems/1.8/gems/dm-core-0.9.11/lib/dm-core/ > > associations/relationship.rb:105:in `each' > > from /usr/lib64/ruby/gems/1.8/gems/dm-core-0.9.11/lib/dm-core/ > > associations/relationship.rb:105:in `get_children' > > from /usr/lib64/ruby/gems/1.8/gems/dm-core-0.9.11/lib/dm-core/ > > associations/relationship.rb:172:in `with_repository' > > from /usr/lib64/ruby/gems/1.8/gems/dm-core-0.9.11/lib/dm-core/ > > support/kernel.rb:6:in `repository' > > from /usr/lib64/ruby/gems/1.8/gems/dm-core-0.9.11/lib/dm- > > core.rb:181:in `repository' > > from /usr/lib64/ruby/gems/1.8/gems/dm-core-0.9.11/lib/dm-core/ > > repository.rb:44:in `scope' > > from /usr/lib64/ruby/gems/1.8/gems/dm-core-0.9.11/lib/dm- > > core.rb:181:in `repository' > > from /usr/lib64/ruby/gems/1.8/gems/dm-core-0.9.11/lib/dm-core/ > > support/kernel.rb:6:in `repository' > > from /usr/lib64/ruby/gems/1.8/gems/dm-core-0.9.11/lib/dm-core/ > > associations/relationship.rb:172:in `with_repository' > > from /usr/lib64/ruby/gems/1.8/gems/dm-core-0.9.11/lib/dm-core/ > > associations/relationship.rb:82:in `get_children' > > from /usr/lib64/ruby/gems/1.8/gems/dm-core-0.9.11/lib/dm-core/ > > associations/one_to_many.rb:251:in `children' > > from /usr/lib64/ruby/gems/1.8/gems/dm-core-0.9.11/lib/dm-core/ > > associations/one_to_many.rb:309:in `method_missing' > > from /usr/lib64/ruby/1.8/irb.rb:302:in `output_value' > > from /usr/lib64/ruby/1.8/irb.rb:151:in `eval_input' > > from /usr/lib64/ruby/1.8/irb.rb:263:in `signal_status' > > from /usr/lib64/ruby/1.8/irb.rb:147:in `eval_input' > > from /usr/lib64/ruby/1.8/irb.rb:146:in `eval_input' > > from /usr/lib64/ruby/1.8/irb.rb:70:in `start' > > from /usr/lib64/ruby/1.8/irb.rb:69:in `catch' > > from /usr/lib64/ruby/1.8/irb.rb:69:in `start' > > from /usr/lib64/ruby/gems/1.8/gems/merb-core-1.0.11/lib/merb- > > core/rack/adapter/irb.rb:161:in `start' > > from /usr/lib64/ruby/gems/1.8/gems/merb-core-1.0.11/lib/merb- > > core/server.rb:174:in `bootup' > > from /usr/lib64/ruby/gems/1.8/gems/merb-core-1.0.11/lib/merb- > > core/server.rb:42:in `start' > > from /usr/lib64/ruby/gems/1.8/gems/merb-core-1.0.11/lib/merb- > > core.rb:170:in `start' > > from /usr/lib64/ruby/gems/1.8/gems/merb-core-1.0.11/bin/merb: > > 11 > > from /usr/bin/merb:19:in `load' > > from /usr/bin/merb:19irb(main):003:0> > > > And yes, the query above returns rows. > > > Any ideas? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "DataMapper" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/datamapper?hl=en -~----------~----~----~----~------~----~------~--~---
