【发布时间】:2010-01-06 16:25:28
【问题描述】:
我有一个带有嵌套 Customer 模型的 Bill 模型。
Customer 模型有一个带有唯一性验证的电话号码。
在创建账单时,我想根据电话号码获取现有记录,或者如果不存在则创建一个新记录。
我应该如何以RESTful 的方式进行操作?
【问题讨论】:
-
在进一步的研究和谷歌搜索中,我发现我可以向 customer_attributes 添加一个 :id 键,并且 rails 会更新记录而不是创建新记录。换句话说,我必须发出一个 customer_attributes[:id] = find_by_phone(customer_attributes[:phone]).id 我不明白的(还)是模型生命周期中的哪个钩子(之前/之后,验证/save) 甚至是我应该使用哪个模型(客户/账单)。在这种情况下,解决方案似乎相当简单,但在深度嵌套的字段中变得复杂。
标签: ruby-on-rails rest nested-attributes