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