Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Mongoid - Is it possible to embeds_one what the model is embedded_in?
- class User
- include Mongoid::Document
- include Mongoid::Paperclip
- include Mongoid::Timestamps
- store_in :users
- belongs_to :team
- field :full_name, :type => String
- field :email, :type => String
- attr_accessible :full_name,
- end
- class Task
- include Mongoid::Document
- include Mongoid::Timestamps
- embedded_in :user
- embeds_one :sender, :class_name => "User"
- field :text, :type => String
- field :due_time, :type => DateTime
- field :completed, :type => Boolean, :default => false
- attr_accessible :text, :due_time
- end
- > u1 = User.where(...).first
- > u2 = User.where(...).first
- > task = Task.new
- > task.user = u1
- > task.sender = u2
- NoMethodError: undefined method `first' for #<Task:0x47631bc9>
- from org/jruby/RubyKernel.java:227:in `method_missing'
- from /Users/larry/.rvm/gems/jruby-1.6.7@entercamp/gems/mongoid-2.4.6/lib/mongoid/attributes.rb:166:in `method_missing'
- from /Users/larry/.rvm/gems/jruby-1.6.7@entercamp/gems/mongoid-2.4.6/lib/mongoid/relations/embedded/many.rb:292:in `substitute'
- from org/jruby/RubyProc.java:270:in `call'
- from org/jruby/RubyProc.java:220:in `call'
- from /Users/larry/.rvm/gems/jruby-1.6.7@entercamp/gems/mongoid-2.4.6/lib/mongoid/relations/embedded/atomic.rb:61:in `atomically'
- from org/jruby/RubyProc.java:270:in `call'
- from org/jruby/RubyProc.java:220:in `call'
- from /Users/larry/.rvm/gems/jruby-1.6.7@entercamp/gems/mongoid-2.4.6/lib/mongoid/relations/embedded/atomic.rb:82:in `count_executions'
- from /Users/larry/.rvm/gems/jruby-1.6.7@entercamp/gems/mongoid-2.4.6/lib/mongoid/relations/embedded/atomic.rb:60:in `atomically'
- from /Users/larry/.rvm/gems/jruby-1.6.7@entercamp/gems/mongoid-2.4.6/lib/mongoid/relations/embedded/many.rb:290:in `substitute'
- from org/jruby/RubyKernel.java:1787:in `tap'
- from /Users/larry/.rvm/gems/jruby-1.6.7@entercamp/gems/mongoid-2.4.6/lib/mongoid/relations/embedded/many.rb:283:in `substitute'
- from /Users/larry/.rvm/gems/jruby-1.6.7@entercamp/gems/mongoid-2.4.6/lib/mongoid/relations/accessors.rb:128:in `tasks='
- from org/jruby/RubyProc.java:270:in `call'
- from org/jruby/RubyKernel.java:2080:in `send'
- > assignee = User.where(...).first
- > assigner = User.where(...).first
- > task = Task.new
- > task.sender = assigner
- > task.save
- > assignee.task = task
- > assignee.save
- class Task
- embedded_in :assignee, :class_name => "User"
- embeds_one :assigner, :class_name => "User"
- end
- class User
- embeds_many :tasks
- embedded_in :task
- end
Add Comment
Please, Sign In to add comment