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
-~----------~----~----~----~------~----~------~--~---

Reply via email to