0
我有這樣的模型Rails的HAS_ONE單向的關聯,是不是強制性的
class Agency < ActiveRecord::Base
has_one :office
end
class Office < ActiveRecord::Base
belongs_to :agency
end
的問題是我不知道如何建立這樣的關係,這不是強制性的(一些機構可以有辦公室,其他人 - 可以只是在線 - 沒有辦公室的機構)。隨着當添加任何代理我每次都籌建處,即使沒有數據,這樣目前的做法,只是存儲空相關的記錄:
agency = Agency.create!(attributes)
agency.build_office
agency.save!
什麼是這樣做的正確方法?
更新
其實,當我使用的形式這樣這個問題就出現了:
form_for @agency.....
...
fields_for @agency.office ...
如果數據庫中沒有辦公室的記錄,我得到一些錯誤(從建築物名稱相關的類名或類似的東西)。
或者我應該簡單地在控制器中構建@office對象,並直接將它傳遞給視圖,而不是簡單地傳遞@agency並使用不存在的@ agency.office?
更新
決定分家,形成與獨立的控制器分別獨立的部分,因爲它是真的難受把一切都在一個頁面上。
我不明白你在問什麼。你爲什麼要成立辦公室? –
如果沒有辦公室,我就不能在'form_for @agency'裏面使用''像'fields_for @ agency.office ...'這樣的東西......如果數據庫中沒有辦公室的話。也許,這是不正確的做法(我是Rails的新手)。也許,我不需要那個,但我應該怎麼使用form? – kovpack
好吧,是的,如果你使用'nested_attributes_for',你將需要建立辦公室,但你總是可以使用'OfficesController'創建辦公室,這樣用戶只需要創建一個,如果需要的話 –