2011-06-08 41 views
0

是新來這個網站,期待更多地參與:)是有屬於許多適合

我創建使用Rails3中一個客戶訂單系統,設計,康康舞等

簡言之我們三個型號:

  1. 用戶
  2. 公司
  3. 訂單

雖然我很努力地理解這些關係。最初,用戶擁有許多公司,這些公司屬於用戶。

然而,我們其實有兩類用戶:

  1. 管理辦公室的工作人員誰可以創建公司,更新信息等
  2. 我們的客戶誰可以登錄並只能看到他們的公司和相關的訂單。

我想過創建兩個控制器 - 管理員和用戶,但它似乎沒有必要,也不是非常不合適。加上康康可以做我想的一切。

你認爲我們應該在這裏做什麼?我們正在考慮使用has_and_belongs_to_many關係,但大多數在線用戶似乎都表示避免這種關係。

感謝,

珍妮

---編輯---

感謝大家誰已經幫助!

經過一番閱讀後,我決定用很多通過關聯。

我創建了一個新的模式叫做協議,並設置我的模型,如下所示:

class User < ActiveRecord::Base 
    has_many :agreements 
    has_many :companies, :through => :agreements 
end 


class Company < ActiveRecord::Base 
    has_many :agreements 
    has_many :users, :through => :agreements 
end 

我有點卡住,但並不能找到一個很好的例子。

我應該分別創建一個用戶和公司,然後創建一個協議來匹配這兩個?

再次感謝您的幫助所有。

+0

你找到一個可行的解決方案呢?如果是的話,你應該接受一個答案。 – pduersteler 2012-01-18 08:48:57

回答

0

你可以去的has_many:通過。至於它似乎應用必將需要在這種情況下,在未來future.So一些連續的變化將更有利於 迴應,如果有任何疑問

感謝名單

+0

嗨,謝謝。如果用戶有許多企業和公司有許多用戶怎麼用「到」 - 他們似乎是直接連接? JB – 2011-06-08 12:40:13

+0

@jenny你可以直接使用,如果你想增加任何屬性,它也會有所幫助..http://guides.rubyonrails.org/association_basics.html。看看它會讓你清楚 – Bijendra 2011-06-08 12:48:26

+0

對不起,對所有這些?!是對的嗎??!我將嘗試使用has_many:通過關聯。儘管如此,仍然有點卡住,在原來的一些評論。 Ĵ – 2011-06-08 15:15:16

0

第一,你需要知道你真正想要達成的目標,瞭解這些關係以及這種關係需要的樣子。在紙上繪製一些實體關係模型,這有助於。

個人而言,我更喜歡用戶has_many:through,因爲如果您需要爲該關係存儲額外數據(這可能是擴展您的應用程序時的情況),您已經設置好了,並且不需要遷移您的表並從habtm到has_many:through的模型。

對於用戶權限,堅持康康舞。

+0

嗨,似乎HABTM工作,但我真的不希望在公司信息的連接表...看起來是正確的,但has_many通過似乎更加整潔。只是真的不知道怎麼會在我的情況..Ĵ – 2011-06-08 12:33:42

1

給出的描述,這聽起來像您有:

  1. 用戶
  2. 客戶
  3. 公司
  4. 訂單

的管理員是誰擔任的角色,允許他們訪問用戶創建,更新公司。一位顧客屬於公司,也可以是依賴於你的用戶模型存儲的信息的「用戶」。

至於它仍然是好的,如果你沒有連接表內將額外的數據使用HABTM。通常,雖然在連接表中有一些信息,因爲它爲連接提供了額外的上下文。

樣本數據模型的一個很好的資源,並給周圍的實體和關係的一些想法是Library of Free Data Models

+0

這是它的要點工作。謝謝,我將通讀圖書館.. J – 2011-06-08 12:38:31

+0

我同意你可能從另一個模型中受益。也許你可以爲每個需要管理員權限的用戶創建一個帶有記錄的管理員模型。和其他人一樣,我更喜歡使用has_many:through。 – 2011-06-08 13:42:40

+0

謝謝,剛纔編輯我的第一個問題。認爲has_many通過是最好的。已經成立,但現在有點卡住了! – 2011-06-08 14:40:00

相關問題