Rails push to array zapisuje obiekt

Mam ciekawy problem. Używam Ruby 1.9.2 i Rails 3.1.3.

Mam 2 modele, dla uproszczenia, powiedzmy klienci i sklepy. Sklepy mają wielu klientów, a klient należy do sklepu. Próbuję zebrać wszystkich klientów do sklepu i stworzyć miejsce dla kilku innych, które później będę mógł wypełnić wartościami. Zamiast tego, customer.save jest wywoływany, gdy tego nie oczekuję.

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

Z jakiegoś powodu, gdy klient jest wpychany do tablicy, wywoływany jest customer.save. To się nie zdarza, jeśli naciskasz na tablicę to zwykła tablica, a nie relacja.

Znalazłem obejście, ale wciąż zastanawiam się, dlaczego tak się dzieje. Obejście:

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