It is related to associations. You can use it on a child class's object to build the parent association. You can't use it the other way around.
class Puppy
belong_to :dog
attr_accessor :name
end
class Dog
has_many :puppies
attr_accessor :name
end
p = Puppy.new(name: "baby")
p.build_dog(name: "John)