无法更新rails模型

时间:2015-09-09 20:13:19

标签: ruby-on-rails ruby couchrest

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&lt;&lt; new_phone.id创建一个新列表并更新couchdb,它不起作用。但是,如果我使用phone_ids + [new_phone.id],更新将起作用。我了解phone_ids + [new_phone.id]会返回一个新实例,但无法弄清楚phone_ids << new_phone.id无效的原因

2 个答案:

答案 0 :(得分:0)

尝试直接添加使用哈希:

<xp:panel id="panel1">
    <xp:inputText id="inputText1">
    <xp:eventHandler event="onkeydown" submit="true"
        refreshMode="partial" refreshId="panel1">
    </xp:eventHandler></xp:inputText>
</xp:panel>

答案 1 :(得分:0)

来自文档:

  

对集合ids属性(group_ids)进行的任何手动更改(除非替换)都需要重新加载CollectionOfProxy才能使两组数据同步

http://www.rubydoc.info/github/couchrest/couchrest_model/CouchRest%2FModel%2FAssociations%2FClassMethods%3Acollection_of