Hi,
I have been working on RoR for about 8 months now. I have 3 websites
live and running well on RoR using all sorts of inter-table
relationships (has_many, HABTM, has_many, :through -= you name it).
It is in this background that the results I am seeing today are taking
me completely out of my depths.
I have 2 tables
- tasks
- opportunities
and Task and Opportunity corresponding to them as models.
So, I go to
ruby script/console
and say
t = Task.find(:all)
and then I do
t[0].class
and it says Opportunity!!!
How is this possible? Of course, I did this exercise in script/console
because none of the relationships that I had mapped into Task were
getting detected.
For more detailed info, here are the models
class Task < ActiveRecord::Base
set_table_name “tasks”
validates_presence_of :who_id, :what, :due_date
belongs_to :opportunity, :foreign_key => “ref_id”
belongs_to :who, :foreign_key => “who_id”, :class_name => “User”
belongs_to :creator, :foreign_key => “created_by”, :class_name =>
“User”
def self.filter_by_responsibility(id)
find(:all, :conditions => “who_id = #{id} and status =
‘Open’”, :order => “type, due_date”)
end
def self.filter_by_opportunity(opportunity_id)
find(:all, :conditions => “ref_id = #{opportunity_id} and type
= ‘Opportunity’ and status = ‘Open’”, :order => “due_date asc”)
end
end
class Opportunity < ActiveRecord::Base
belongs_to :contact
belongs_to :business_line
belongs_to :line_owner, :class_name => “User”, :foreign_key =>
“line_owner_id”
belongs_to :cxo_owner, :class_name => “User”, :foreign_key =>
“cxo_owner_id”
has_many :tasks
has_many :pending_tasks, :class_name=>“Task”, :conditions=>“status !=
‘Done’”
belongs_to :proposal_owner, :class_name => “User”, :foreign_key =>
“proposal_owner_id”
belongs_to :proposal_currency, :foreign_key =>
“proposal_currency_id”, :class_name => “Currency”
validates_numericality_of :proposal_value, :message => “: Enter
proposal value without commas, decimal points etc”, :if => Proc.new { |
o| !o.proposal_value.blank? }
def self.overdue_closures
find(:all, :conditions => “expected_closure_date <= ‘#{Date.today}’
and current_status != ‘PO’”, :order => “line_owner_id”)
end
end
WHAT IS HAPPENING HERE? WHAT AM I MISSING? IT CANT BE RAILS. IT NEVER
IS.
Regards,
Rajesh