Hi

As subscriber model is polymorphic and as you
are referring "subscribers.appointments"
It means, you are having following association in appointment model.

class Appointment < ActiveRecord::Base
  has_many :subscribers, :as => : subscribable
end


Here goes solution

class User < ActiveRecord::Base
  has_many :subscribers

  def appointments
   self. subscribers.of_appointment_type.collect { |s| s.subscribable }
  end
end

defined "of_appointment_type" as a named_scope in Subscriber model

class Subscriber < ActiveRecord::Base
 belongs_to :user
 belongs_to :subscribable, :polymorphic => true

 named_scope :of_appointment_type, :conditions => [ "subscribable_type = ? ",
"Appointment"]

end


On Mon, Nov 2, 2009 at 1:51 AM, theLemcke <sixtimesn...@gmail.com> wrote:

>
> I am trying to build a shared-appointment system, where users can
> subscribe to appointments and be updated whenever changes are made to
> them.  I have three objects in this system, appointments, users, and
> subscribers.  Subscribers are a polymorphic object like so:
> class Subscriber < ActiveRecord::Base
>  belongs_to :user
>  belongs_to :subscribable, :polymorphic => true
>

It means you have  subscribable_id and subscribable_type fields in table

> end
>
>

> The tricky part is that users already own appointments, so I can't
> create a simple users.appointments association.  I can find users by
> calling appointment.subscribers, but I need help getting the reverse
> to work (users.subscribers.appointments)  I can use named_scope to
> only grab appointment subscriber objects, but how can I make it
> automatically link to the appointments, not the subscriber objects?
> >
>

Sandip
-- 
www.funonrails.com

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to