Rails empurrar para array salva objeto

Eu tenho um problema interessante. Estou usando o Ruby 1.9.2 e o Rails 3.1.3.

Eu tenho 2 modelos, para simplificação digamos clientes e lojas. As lojas têm muitos clientes e um cliente pertence a uma loja. Estou tentando coletar todos os clientes para uma loja e criar um lugar para mais alguns que eu possa preencher com valores mais tarde. Em vez disso, o customer.save é chamado quando não o espero.

store = Store.find(1)
customers_array = store.customers
random_array = Array.new
customers_count = customers_array.count + 1 

(customers_count..2).each do |i|
  customer = Customer.new
  c.id = "#{i}000000000000"
  random_array << customer # this line doesn't call customer.save
  customers_array << customer # this line calls customer.save when store has customers
end

Por alguma razão, quando o cliente é empurrado para a matriz, customer.save é chamado. Isso não acontece se você empurrar para uma matriz é uma matriz simples e não uma relação.

Eu encontrei uma solução, mas ainda estou me perguntando por que isso acontece. A solução alternativa:

store = Store.find(1)
initial_customers_array = store.customers
additional_customers_array = Array.new
customers_count = initial_customers_array.count + 1 

(customers_count..2).each do |i|
  customer = Customer.new
  c.id = "#{i}000000000000"
  additional_customers_array << customer 
end
customers_array = initial_customers_array + additional_customers_array

questionAnswers(2)

yourAnswerToTheQuestion