문서를 약간 잘못 읽고 있습니다. some_firm.client.new
는 Client
클라이언트 컬렉션에서 새 객체를 생성 하므로 자동으로 firm_id
to을 설정할 수 some_firm.id
있지만 문서는 전화 Client.new
를 걸어 회사의 ID를 전혀 알지 못하므로 firm_id
전달해야합니다.
유일한 차이점 some_firm.clients.new
및 some_firm.clients.build
그 것 같다 build
또한에 새로 만든 클라이언트를 추가 clients
수집 :
henrym:~/testapp$ rails c
Loading development environment (Rails 3.0.4)
r:001 > (some_firm = Firm.new).save # Create and save a new Firm
#=> true
r:002 > some_firm.clients # No clients yet
#=> []
r:003 > some_firm.clients.new # Create a new client
#=> #<Client id: nil, firm_id: 1, created_at: nil, updated_at: nil>
r:004 > some_firm.clients # Still no clients
#=> []
r:005 > some_firm.clients.build # Create a new client with build
#=> #<Client id: nil, firm_id: 1, created_at: nil, updated_at: nil>
r:006 > some_firm.clients # New client is added to clients
#=> [#<Client id: nil, firm_id: 1, created_at: nil, updated_at: nil>]
r:007 > some_firm.save
#=> true
r:008 > some_firm.clients # Saving firm also saves the attached client
#=> [#<Client id: 1, firm_id: 1, created_at: "2011-02-11 00:18:47",
updated_at: "2011-02-11 00:18:47">]
연결을 통해 객체를 생성하는 경우 빌드시 메모리에있는 객체 (이 경우)가 객체가 데이터베이스에 저장되기 전에도 일관성있는 상태로 유지 build
되므로 선호하는 것이 좋습니다 .new
some_firm