Change to has_many :through
It looks like edge Rails revision 4007 breaks has_many :through associations if the association name does not correspond to the associated model. Before today, you could use :class_name to clear things up:
has_many :members, :through => :memberships, :class_name => "User"
That will now throw a nice descriptive error:
ActionView::TemplateError: Could not find the source association(s) :member or :members in model Membership. Try 'has_many :members, :through => :memberships, :source => <name>'. Is it one of :user or :group?
You now need to specify the target model with :source:
has_many :members, :through => :memberships, :source => :user
I would just like to add that the world needs more error messages like the one above. Not only does it give you the correct syntax to use, but even tells you the two valid options for :source based on the real data!