我對Ruby on Rails很新。Ruby on Rails模型關係
我試圖建立一個用戶模型和十個不同項目的模型之間的關係。
我的目標是讓用戶能夠檢查項目模型中的項目,然後讓已經檢查過的項目顯示在他們的個人資料中。
我已經使用Michael Hartl Ruby on Rails tutorial高達 創建微博的重點。 任何有助於我完成此教程的技巧將不勝感激。
謝謝!
我對Ruby on Rails很新。Ruby on Rails模型關係
我試圖建立一個用戶模型和十個不同項目的模型之間的關係。
我的目標是讓用戶能夠檢查項目模型中的項目,然後讓已經檢查過的項目顯示在他們的個人資料中。
我已經使用Michael Hartl Ruby on Rails tutorial高達 創建微博的重點。 任何有助於我完成此教程的技巧將不勝感激。
謝謝!
基本上,你想要的是:
一個User
has_and_belongs_to_many :items
而且,Item
has_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
基於任何複選框被選中,保存記錄,建立關係。
完成。 :)
我不知道其他教程,如果你已經完成了哈特爾的話,那麼你對整個rails框架有非常好的理解。我會有一個items_list模型。其中有一個user_id外鍵將自己與用戶關聯起來。然後我可以有一個項目模型,它有一個items_list外鍵將它們關聯到一個列表。然後項目模型可以有一個布爾型字段「主動」或「檢查」或其他。使用這些,以及相關的關係和一些範圍,你可以得到你想要的。
只要確保在請求這些數據時使用includes helper,否則您將很容易出現N + 1問題。
http://guides.rubyonrails.org/active_record_querying.html#eager-loading-associations