Skip to content

Instantly share code, notes, and snippets.

@dmilith
Created December 22, 2008 01:48
Show Gist options
  • Select an option

  • Save dmilith/38828 to your computer and use it in GitHub Desktop.

Select an option

Save dmilith/38828 to your computer and use it in GitHub Desktop.
user.rb
has n, :usage_permissions
has n, :domains, :through => :usage_permissions, :mutable => true # workaround XXX http://datamapper.lighthouseapp.com/projects/20609/tickets/485-has-n-through-does-not-allow-saving-of-model
has n, :subdomains
domain.rb
has n, :usage_permissions
has n, :users, :through => :usage_permissions, :mutable => true # workaround XXX http://datamapper.lighthouseapp.com/projects/20609/tickets/485-has-n-through-does-not-allow-saving-of-model
belongs_to :owner, :class_name => "User"
usage_permission.rb
belongs_to :user
belongs_to :domain
steps:
@user = User.first
@domain = Domain.create
@domain.owner = @user
@domain.users = [@user]
@domain.name = "domenaX"
@subdomain = Subdomain.new( :name => "SubDomenaDomeny", :user => @user, :domain => @domain )
@domain.save!
and....
NoMethodError: undefined method `attach_parent' for #<DataMapper::Associations::RelationshipChain:0x7fa5d0d6d490>
from /usr/local/lib/ruby/gems/1.8/gems/dm-core-0.9.8/lib/dm-core/associations/one_to_many.rb:302:in `save_resource'
from /usr/local/lib/ruby/gems/1.8/gems/dm-core-0.9.8/lib/dm-core/associations/relationship.rb:172:in `with_repository'
from /usr/local/lib/ruby/gems/1.8/gems/dm-core-0.9.8/lib/dm-core/support/kernel.rb:6:in `repository'
from /usr/local/lib/ruby/gems/1.8/gems/dm-core-0.9.8/lib/dm-core.rb:181:in `repository'
from /usr/local/lib/ruby/gems/1.8/gems/dm-core-0.9.8/lib/dm-core/repository.rb:44:in `scope'
from /usr/local/lib/ruby/gems/1.8/gems/dm-core-0.9.8/lib/dm-core.rb:181:in `repository'
from /usr/local/lib/ruby/gems/1.8/gems/dm-core-0.9.8/lib/dm-core/support/kernel.rb:6:in `repository'
from /usr/local/lib/ruby/gems/1.8/gems/dm-core-0.9.8/lib/dm-core/associations/relationship.rb:172:in `with_repository'
from /usr/local/lib/ruby/gems/1.8/gems/dm-core-0.9.8/lib/dm-core/associations/one_to_many.rb:298:in `save_resource'
from /usr/local/lib/ruby/gems/1.8/gems/dm-core-0.9.8/lib/dm-core/associations/one_to_many.rb:210:in `save'
from /usr/local/lib/ruby/gems/1.8/gems/extlib-0.9.9/lib/extlib/lazy_array.rb:391:in `each'
from /usr/local/lib/ruby/gems/1.8/gems/extlib-0.9.9/lib/extlib/lazy_array.rb:391:in `send'
from /usr/local/lib/ruby/gems/1.8/gems/extlib-0.9.9/lib/extlib/lazy_array.rb:391:in `method_missing'
from /usr/local/lib/ruby/gems/1.8/gems/dm-core-0.9.8/lib/dm-core/collection.rb:638:in `method_missing'
from /usr/local/lib/ruby/gems/1.8/gems/dm-core-0.9.8/lib/dm-core/associations/one_to_many.rb:309:in `send'
from /usr/local/lib/ruby/gems/1.8/gems/dm-core-0.9.8/lib/dm-core/associations/one_to_many.rb:309:in `method_missing'
from /usr/local/lib/ruby/gems/1.8/gems/dm-core-0.9.8/lib/dm-core/associations/one_to_many.rb:210:in `save'
from /usr/local/lib/ruby/gems/1.8/gems/dm-core-0.9.8/lib/dm-core/resource.rb:286:in `hookable__save_nan_before_advised'
from /usr/local/lib/ruby/gems/1.8/gems/dm-core-0.9.8/lib/dm-core/resource.rb:286:in `each'
from /usr/local/lib/ruby/gems/1.8/gems/dm-core-0.9.8/lib/dm-core/resource.rb:286:in `hookable__save_nan_before_advised'
from /usr/local/lib/ruby/gems/1.8/gems/extlib-0.9.9/lib/extlib/hook.rb:294:in `save'
from /usr/local/lib/ruby/gems/1.8/gems/extlib-0.9.9/lib/extlib/hook.rb:292:in `catch'
from /usr/local/lib/ruby/gems/1.8/gems/extlib-0.9.9/lib/extlib/hook.rb:292:in `save'
from (irb):4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment