I took your code and created a sample application. I tested it out and think the issue is that you need to add an attribute to your output of the following code:
<%= appointment.user %>
Something like:
<%= appointment.user.name %>
What you are doing currently is that it is referencing the entire user object from the appointment. You can also test this out by loading rails console and doing the following:
appointment = Appointment.first
appointment.user
This will show a User object like the following:
>> appointment.user
User Load (0.3ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? ORDER BY "users"."id" ASC LIMIT 1 [["id", 1]]
=> #<User id: 1, name: "test", created_at: "2014-02-28 16:12:15", updated_at: "2014-02-28 16:12:15">
Once you have that you can dig deeper to what you need.
Let me know if this works or you still are having trouble. I am assuming that the output of the appointment.user is in a show context?
Mike Riley