Difference between has_one and belongs_to

On the conceptual level, if your class A has a has_one relationship
with class B then class A is the parent of class B hence your class B
will have a belongs_to relationship with class A since it is the child
of class A.

This is the reason (as Fred specified before), you will have a_id as
foriegn key in your table b