I do not understand this line of a code:
@club = current_user.clubs.build(club_params)
I know that the same code can be created with new method, and then we can save the instance variable, but what does build do in this case?
I do not understand this line of a code:
@club = current_user.clubs.build(club_params)
I know that the same code can be created with new method, and then we can save the instance variable, but what does build do in this case?
 
    
     
    
    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)
or
bar = foo.bars.build # (has\_many, habtm or has_many :through)
http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html
Update
build and new are aliases as defined in ActiveRecord::Relation:
So if class Foo has_many Bars, the following have identical effects:
foo.bars.new <=> foo.bars.buildBar.where(:foo_id=>foo.id).new <=> Bar.where(:foo_id=>foo.id).buildAnd if !foo.new_record?
foo.bars.new <=> Bar.where(:foo_id=>foo.id).new  
    
    New and build are same as per the documentation https://github.com/rails/rails/blob/master/activerecord/lib/active_record/relation.rb
 
    
    build and new both are almost same but have difference of that build is used when you are using belongs_to in association
In this patient belongs_to user so we used build
belongs_to :user
@patient = current_user.patients.build(patient_params) 
@patient.save
