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.