complete has_many_through