Bạn đang đọc sai các tài liệu một chút. some_firm.client.newđang tạo ra một mới Clientđối tượng từ bộ sưu tập của khách hàng, và vì vậy nó có thể tự động thiết lập firm_idđể some_firm.id, trong khi các tài liệu được gọi Client.newmà không có kiến thức về id của bất kỳ Công ty nào cả, vì vậy nó cần firm_idđược truyền cho nó.
Sự khác biệt duy nhất giữa some_firm.clients.newvà some_firm.clients.builddường như buildcũng là thêm ứng dụng khách mới được tạo vào clientsbộ sưu tập:
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">] 
Nếu bạn đang tạo một đối tượng thông qua một liên kết, buildnên được ưu tiên hơn newvì bản dựng giữ cho đối tượng trong bộ nhớ của bạn, some_firm(trong trường hợp này) ở trạng thái nhất quán ngay cả trước khi bất kỳ đối tượng nào được lưu vào cơ sở dữ liệu.