Can anyone tell me what is the difference between build and new command on Rails?
new is for a new instance of a specific model:
foo = Foo.new
build is for creating a new instance within an AR association:
bar = foo.build_bar # (has_one or belongs_to)
bar = foo.bars.build # (has_many, habtm or has_many :through)
Per @toklands's suggestion, build and new are aliases as defined in ActiveRecord::Relation:
So if class Foo has_many Bars, the following have identical effects: