1
class Student < CouchRest::Model::Base
   collection_of :phones
   def add_phone(new_phone)
     #this does not work
     #new_phone_ids_list = phone_ids << new_phone.id 
     #this works
     new_phone_ids_list = phone_ids + [new_phone.id]
     self.update_attributes(:phone_id => new_phone_ids_list)
   end
end

違いは、phone_ids << new_phone.id を使用して新しいリストを作成し、couchdb を更新すると機能しないことです。しかし、 phone_ids + [new_phone.id] を使用すると、更新が機能します。phone_ids + [new_phone.id]新しいインスタンスが返されることは理解していますが、なぜphone_ids << new_phone.id 機能しないのかわかりません

4

2 に答える 2