i'm still new too, but i think one way is to make join models
representing each relationship:
e.g.
make a migration:
def self.up
create_table :planned_places do |t|
t.column :place_id, :integer
t.column :user_id, :integer
end
create_table :visited_places do |t|
t.column :place_id, :integer
t.column :user_id, :integer
end
create_table :lived_places do |t|
t.column :place_id, :integer
t.column :user_id, :integer
end
end
then in your model;
has_many :planned_places
has_many :visited_places
has_many :lived_places