rails new메소드와 build메소드의 차이에 대해

Posted by negabaro kim on Monday, September 7, 2020 Tags: rails/model   1 minute read

new메소드와 build메소드의 차이

new메소드와 build메소드의 차이는 없다.

조금 의외였던것은 build메소드의 alias가 new메소드이다.(반대인줄)

아래 코드를 참조

def build(attributes = {}, &block)
  @association.build(attributes, &block)
end
alias_method :new, :build

예전에는 차이가 있었다고

지금은 차이가 없었지만 예전에는

관련모델에서 오브젝트 생성시 xx_id가 들어가냐 안들어가냐의 차이가 있었다고 한다.

user = User.first
user.comments.new
=> #<Comment id: nil, body: nil, user_id: 1, created_at: nil, updated_at: nil>
user.comments.build
=> #<Comment id: nil, body: nil, user_id: 1, created_at: nil, updated_at: nil>

현재는 차이가 없다.

reference:

https://qiita.com/sukechansan/items/6bae532b4f678fdcf87d