2013-04-29 276 views
0

我對Ruby on Rails很新。Ruby on Rails模型關係

我試圖建立一個用戶模型和十個不同項目的模型之間的關係。

我的目標是讓用戶能夠檢查項目模型中的項目,然後讓已經檢查過的項目顯示在他們的個人資料中。

我已經使用Michael Hartl Ruby on Rails tutorial高達 創建微博的重點。 任何有助於我完成此教程的技巧將不勝感激。

謝謝!

回答

0

基本上,你想要的是:
一個Userhas_and_belongs_to_many :items
而且,Itemhas_and_belongs_to_many :users

這是多對多的關係。因爲,用戶可以有很多項目,並且項目也可以屬於多個用戶。在rails中,這裏has_and_belongs_to_many將隱式創建一個表items_users,它將包含兩者的id,建立關係。

瞭解更多關於該協會在這裏 - http://guides.rubyonrails.org/association_basics.html#the-has_and_belongs_to_many-association

使用checkbox標籤用於顯示所有項目的複選框。文檔 - http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-check_box

基於任何複選框被選中,保存記錄,建立關係。

完成。 :)

0

我不知道其他教程,如果你已經完成了哈特爾的話,那麼你對整個rails框架有非常好的理解。我會有一個items_list模型。其中有一個user_id外鍵將自己與用戶關聯起來。然後我可以有一個項目模型,它有一個items_list外鍵將它們關聯到一個列表。然後項目模型可以有一個布爾型字段「主動」或「檢查」或其他。使用這些,以及相關的關係和一些範圍,你可以得到你想要的。

只要確保在請求這些數據時使用includes helper,否則您將很容易出現N + 1問題。

http://guides.rubyonrails.org/active_record_querying.html#eager-loading-associations