On Feb 25, 2010, at 12:07 PM, Jakub Kuźma wrote:

Hi guys!

I'm writing a small bridge app now, and I have following class:

class Board
 belongs_to :user_n, ...
 belongs_to :user_e, ...
 belongs_to :user_s, ...
 belongs_to :user_w, ...

 def users
   [user_n, user_e, user_s, user_w]
 end
end

What I'm trying to do is to return something similar to
AssociationProxy in the method users. I see no point of creating many-
to-many association here - the only thing that I want to achieve is:

board.users.owner(card) # returns user that owns given card

I've spent some time on analysing AssociationProxy class, and I think
it's possible to decouple general Proxy class from it. It'd be really
nice to implement the "users" method like:

def users
 ActiveSupport::Proxy.new([user_n, user_e, user_s, user_w]) do
   def owner(card)
     ...
   end
 end
end

I can try to write something, but I'd like to know if it's worth
spending few hours on it. What do you think about it?

Note that arrays have a metaclass, just like everything else:

def users
  result = [user_n, user_e, user_s, user_w]
  def result.owner(card)
    # define something; 'self' will be the array
  end
  result
end

But I'm not really sure why writing @board.users.owner(card) is in any way preferable to just defining 'owner' on Board - @board.owner(card)...

--Matt Jones

--
You received this message because you are subscribed to the Google Groups "Ruby on 
Rails: Core" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-core?hl=en.

Reply via email to