Ruby on rails 3.2 在rails 3.2中如何将一个数据库对象与另一个数据库对象重新关联

Ruby on rails 3.2 在rails 3.2中如何将一个数据库对象与另一个数据库对象重新关联,ruby-on-rails-3.2,rails-activerecord,Ruby On Rails 3.2,Rails Activerecord,我对这个问题的措辞有困难,因此我也很难找到答案。希望有人能帮我说得更好。无论如何,我找不到任何标准的过程来管理给定数据库行与另一行的重新关联,这一行可能存在,也可能不存在。例如,假设我们有两个模型: class Residence < ActiveRecord::Base belongs_to :zipcode end ... class Zipcode < ActiveRecord::Base has_many :residences end class Resid

我对这个问题的措辞有困难,因此我也很难找到答案。希望有人能帮我说得更好。无论如何,我找不到任何标准的过程来管理给定数据库行与另一行的重新关联,这一行可能存在,也可能不存在。例如,假设我们有两个模型:

class Residence  < ActiveRecord::Base
  belongs_to :zipcode
end

...

class Zipcode < ActiveRecord::Base
  has_many :residences
end
class Residence
现在说我的数据出错了,我想改变一个住宅的密码。我不能仅仅为它创建一个标准的rails表单,因为我不想更改zipcode本身(即,将id=1的zipcode更改为90210,而不是90123),我想将住宅与数据库中可能存在或可能不存在的新zipcode重新关联

我可以想出很多方法来做到这一点,但这似乎是一个人在多对一关系中可能一直想要做的事情,我想学习“最佳实践”方法来做到这一点


谢谢

因为没有人回应,我已经离开了,我想我应该分享一下我决定处理这个问题的技术。由于我需要在parameters数组中发回的是一个id(可能是最终用户从未真正看到的),所以唯一干净的方法是使用AJAX调用zipcodes表以获得不同的zipcode id,居住表单包含一个任意命名的输入元素,用于允许用户输入zipcode并从返回的列表中进行选择。如果他从列表中选择了zipcode,则其ID将填充在与表单一起发送的隐藏字段中。如果没有,则在提交表单时创建(并验证)zipcode,然后在调用驻留对象上的
update\u attributes()
之前,将其ID作为zipcode\u ID字段添加到参数数组中

如果有人知道更好的方法,请分享。不过,这对我来说很管用