복붙노트

[RUBY-ON-RAILS] 레일에 구축하고 새로운 차이점은 무엇입니까?

RUBY-ON-RAILS

레일에 구축하고 새로운 차이점은 무엇입니까?

사람이 레일에 빌드 새로운 명령의 차이점이 무엇인지 말해 줄 수 있습니까?

해결법

  1. ==============================

    1.새로운 특정 모델의 새로운 인스턴스입니다 :

    새로운 특정 모델의 새로운 인스턴스입니다 :

    foo = Foo.new
    

    빌드는 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

    최신 정보

    액티브에 정의 된 @의 toklands의 제안, 구축 당과 새로운 것은 별칭 : 관계 :

    그래서 클래스 푸 has_many 바 경우, 다음과 같은 동일한 효과를 :

    그리고!의 foo.new_record 경우?

  2. ==============================

    2.새로운 및 빌드 문서에 따라 동일 https://github.com/rails/rails/blob/master/activerecord/lib/active_record/relation.rb

    새로운 및 빌드 문서에 따라 동일 https://github.com/rails/rails/blob/master/activerecord/lib/active_record/relation.rb

  3. ==============================

    3.레일 2.2 이전에, 당신은 자동으로 외국 키가 설정되어있는에 새로운 레코드를 위해 관계의 has_many / has_and_belongs_to_many 부분에 대한 빌드를 필요로했다. 예를 들면 :

    레일 2.2 이전에, 당신은 자동으로 외국 키가 설정되어있는에 새로운 레코드를 위해 관계의 has_many / has_and_belongs_to_many 부분에 대한 빌드를 필요로했다. 예를 들면 :

    user.timesheets.build
    

    외래 키를 설정합니다. 나는 레일 2.2 이후, 새로운 빌드 has_many와 has_and_belongs_to_many 관계 같은 일을 생각한다.

  4. ==============================

    4.사용하여 A 중첩 된 자원을 사용하여, 도면 양식에 대한 "거짓"객체를 생성하도록 사용시 I는 .new를 .build과의 차이를 관찰 하였다.

    사용하여 A 중첩 된 자원을 사용하여, 도면 양식에 대한 "거짓"객체를 생성하도록 사용시 I는 .new를 .build과의 차이를 관찰 하였다.

    .build는 PARENT_ID를 생성 .new를하지 않습니다

    중첩 된 자원 예 : @ list.items (항목이 목록 아래에 중첩되는 경우)

    @ list.items.build ... list_id로를 제외한 모든 무기 호 값으로 객체를 생성합니다.

    Item.new 모든 전무 값으로, 새로운 항목 개체를 만듭니다.

    그것은 나의 '쇼'페이지에서 보여 반복 할 때에 걸쳐 list.items @ 아니 문제 내가 더 아래 같은 '쇼'페이지 항목에 연관된 list_id로했다 (.build에 의해 생성 된 하나) 노출 반복을 list.items @ 다른 형태의 list.items @ 필요할 때까지,하지만 아무것도.

    @ list.items.build => #

    2.2.3 :002 > Item.all.build => #

    2.2.3 :003 > Item.new => # 2.2.3 :004 >

  5. ==============================

    5.빌드가 새 인스턴스로 호출을 채워하지만 새하지 않았다 시간이 있었다. 지금 레일 4 신규 및 빌드 채우기 새 인스턴스와 호출자에서. 당신이 아이디어를 얻으려면 그냥 콘솔에 놀러.

    빌드가 새 인스턴스로 호출을 채워하지만 새하지 않았다 시간이 있었다. 지금 레일 4 신규 및 빌드 채우기 새 인스턴스와 호출자에서. 당신이 아이디어를 얻으려면 그냥 콘솔에 놀러.

  6. from https://stackoverflow.com/questions/1253426/what-is-the-difference-between-build-and-new-on-rails by cc-by-sa and MIT license