A bit weird relationship, how to relate this?

Well I do see you’re missing a :through clause on Group:

class Group < ActiveRecord::Base has_many :invitations has_many :users, :through => :memberships end

As for the @user.invitations , hmm…

class User < ActiveRecord::Base has_many :memberships has_many :groups, :through => :memberships has_many :invitations, :through => :groups (?) end

You might be better off defining a method User#invitations and building the relationship programatically.

Jason