2013-04-29 25 views
0

我在解決這個問題時遇到了麻煩,因此我也無法找到答案。希望有人能幫助我說得更好。無論如何,我找不到任何標準的程序來管理給定數據庫行與可能存在或可能不存在的另一行的重新關聯。例如,假設我們有兩種模式:如何在rails 3.2中重新關聯數據庫對象與另一個數據庫對象

class Residence < ActiveRecord::Base 
    belongs_to :zipcode 
end 

... 

class Zipcode < ActiveRecord::Base 
    has_many :residences 
end 

現在說我的數據被搞砸了,我想更改住所的郵政編碼。我不能只爲它製作一個標準的導軌形式,因爲我不想更改郵編本身(即,將id = 1的郵政編碼改爲90210而不是90123),我想用一個新的郵政編碼重新關聯住所可能已經或可能不在數據庫中。

我可以想到很多方法來做到這一點,但它似乎是人們可能總是希望與多對一關係做的事情,我想學習「最佳實踐」方法來做到這一點。

謝謝!

回答

0

由於沒有人回覆,我已經移動了,我想我會分享我決定處理這個問題的技術。由於我需要在參數數組中返回一個id(可能是最終用戶從未真正看到的),唯一干淨的方法是使用對zipcodes表的AJAX調用來獲取不同的zipcode ID。實際上,住所表單中包含一個任意命名的輸入元素,用於允許用戶輸入郵政編碼並從返回的列表中進行選擇。如果他從列表中選擇了一個郵政編碼,那麼它的ID就會填入與表單一起發送的隱藏字段中。如果不是,則在表單提交後創建(驗證)郵政編碼,然後在居住對象上調用update_attributes()之前將其ID添加到params數組中作爲zipcode_id字段。

如果有人知道更好的方法來做到這一點,請分享。雖然這對我來說很好。