Hi all,
I don't know a better title for my question, sorry about that.
The problem I'm having is that I've got no clue how to do this:
Table issues:
Column created_by
Column closed_by
Both of those columns will hold User#id's. For what I've read and
understood in the API, you can do:
Class Issue < AR::B
belongs_to :created_by, :class_name => :user
belongs_to :closed_by, :class_name => :user
end
But then, in my parent class:
Class User < AR::B
has_many :? # Issues trough created_by
has_many :? # Issues trough updated_by
end
I've stopped here because I feel I'm not going in the right
direction...
When you say, it sounds so easy...
Thanks a lot, again! =)
Ok,
Here are the associations:
Class Issue < AR::B
belongs_to :creator, :class_name => :user, :foreign_key
=> :created_by
belongs_to :solver, :class_name => :user, :foreign_key => :closed_by
belongs_to :owner, :class_name => :user, :foreign_key
=> :assigned_to
end
Class User < AR::B
has_many :created_issues, :class_name => :issue, :foreign_key
=> :created_by
has_many :closed_issues, :class_name => :issue, :foreign_key
=> :closed_by
has_many :assigned_issues, :class_name => :issue, :foreign_key
=> :assigned_to
end
If I do:
@issues = Issue.find(:all, :include => :owner )
I get error:
can't convert Symbol into String
Stack:
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
base.rb:1347:in `type_name_with_module'
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
base.rb:1746:in `compute_type'
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
reflection.rb:125:in `send'
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
reflection.rb:125:in `klass'
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
associations.rb:1561:in `initialize'
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
associations.rb:1459:in `new'
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
associations.rb:1459:in `build_join_association'
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
associations.rb:1442:in `build'
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
associations.rb:1445:in `build'
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
associations.rb:1444:in `each'
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
associations.rb:1444:in `build'
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
associations.rb:1385:in `initialize'
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
associations.rb:1123:in `new'
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
associations.rb:1123:in `find_with_associations'
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
associations.rb:1122:in `catch'
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
associations.rb:1122:in `find_with_associations'
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
base.rb:1232:in `find_every'
C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
base.rb:503:in `find'
app/controllers/issues_controller.rb:5:in `index'
Fixed.
Instead of using symbols for :class_name => I used strings.
So :class_name => :user became :class_name => 'User'.