2012-04-06 87 views
0

我一直在看瑞安的截屏:如何在Rails 3中正確關聯深度嵌套表單?

http://railscasts.com/episodes/196-nested-model-form-part-1

我有一個類似但不同的問題,我希望有人可以提供幫助。


我有需要(至少)以下四種型號註冊:

  • 帳戶
  • 公司
  • 地址
  • 用戶

註冊時,我想爲公司地址,並用戶單獨與直接帳戶相關。

另外,我想TE 用戶是聯想與公司地址要與公司相關。

注:每個人都有一個外鍵:account_id - 這實質上是一種多租戶系統,一個單一的數據庫。


我的同事目前設置如下:

帳戶

的has_many:公司

的has_many:用戶

的has_many:地址

(在未來,其他車型將採用公司和地址模式,這就是爲什麼客戶有很多的那些)

用戶

belongs_to的:帳戶

belongs_to的:公司

公司

belongs_to的:帳戶

的has_many:用戶

的has_many:地址

地址

belongs_to的:帳戶

belongs_to的:公司


我一直在使用accepts_nested_attributes_for模型中的方法,以及視圖中的方法,但只能以純粹嵌套的方式獲取關聯的東西。

換句話說,一個用戶得到關聯到公司但沒有關聯的帳戶

我需要每個模型帳戶相關聯。 (當然除了帳戶本身)

有沒有辦法做到這一點?

謝謝。

回答

0

我想你在哪弄糊塗。

  • 帳戶有許多公司
  • 公司擁有衆多用戶
  • 公司所屬的帳戶
  • 帳戶用戶belongs_to的公司用戶belongs_to的帳戶或者通過公司
  • 或用戶創建ACCOUNT_ID

在視圖中,您可以創建表單公司,然後創建fields_for帳戶和內部帳戶創建fields_for用戶。

我認爲這會解決你的目的。 不要忘記添加公司內部的accept_nesetd_attributes和帳戶

+0

我澄清了這個問題。你介意再看一下嗎? – Nathan 2012-04-06 08:41:42

+0

也許你可以在用戶上運行after_create回調,並從company.mean查找賬戶與賬戶相關聯,而如果我找到了,我會查看其他解決方案。 – Amar 2012-04-06 09:19:32

+0

謝謝。我認爲有一些內置Rails魔法來處理這種情況,但我現在認爲沒有。所以我只是通過將賬戶對象傳入賬戶模型來處理剩餘的關聯,以便在保存後立即完成。 – Nathan 2012-04-06 12:03:42