Я не понимаю эту строку кода:
@club = current_user.clubs.build(club_params)
Я знаю, что тот же код может быть создан с помощью метода new, и тогда мы можем сохранить переменную экземпляра, но что делает build делать в этом случае?
new
build
Новые и сборки такие же, как в документации https://github.com/rails/rails/blob/master/activerecord/lib/active_record/relation.rb
new - для нового экземпляра конкретной модели:
foo = Foo.new
build - для создания нового экземпляра в ассоциации AR:
bar = foo.build_bar # (has_one or belongs_to)
или
bar = foo.bars.build # (has\_many, habtm or has_many :through)
http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html
Обновление
сборка и новые являются псевдонимами, как определено в ActiveRecord :: Relation :
Так, если класс Foo имеет_many Bars, следующие эффекты имеют идентичный эффект:
foo.bars.new
foo.bars.build
Bar.where(:foo_id=>foo.id).new
Bar.where(:foo_id=>foo.id).build
А если !foo.new_record?
!foo.new_record?