2014-10-09 179 views
0

我正在構建一個rails應用程序,我開始陷入困境。我有一個名爲Model的組,我希望用戶能夠加入該組。小組方面工作,我可以創建,刪除,編輯等一組以及用戶部分正在工作。我陷入困境的地方是用戶和組之間的連接。我運行這個命令:Rails關係數據庫

rails g resource Student student_id:integer course_id:integer 

要創建一個關係數據庫,以便用戶可以加入一個組,併成爲學生。這些是我對學生的路線:

   Prefix Verb URI Pattern     Controller#Action 
      students GET /students(.:format)   students#index 
        POST /students(.:format)   students#create 
     new_student GET /students/new(.:format)  students#new 
     edit_student GET /students/:id/edit(.:format) students#edit 
      student GET /students/:id(.:format)  students#show 
        PATCH /students/:id(.:format)  students#update 
        PUT /students/:id(.:format)  students#update 
        DELETE /students/:id(.:format)  students#destroy 

我該如何去使用學生模型添加用戶到組中。當用戶正在查看組的查看(索引)頁面時,有一個加入按鈕,所以我希望當用戶單擊/views/groups/index.html.erb頁面上的加入按鈕時,它會將其添加到學生數據庫。我認爲我可以做一個<%= link_to「+加入」,....,:method =>:post%>沿着這些線的東西,但我不知道路徑將是什麼,並從那裏去。我需要控制器接受current_user.id的參數,並且由於我正在循環組group.id

回答

0

聽起來就像您只是想在用戶和組之間建立關係。在rails中,你不需要設置表來表示關係,而是一個關聯。請在此處閱讀:http://guides.rubyonrails.org/association_basics.html

對於用戶只能成爲一個組的一部分的較簡單情況,我們會說用戶belongs_to :group,以及一個組has_many :users。通過將這些線放在相應的模型中,您基本上已經建立了連接。 Rails將自動爲任何用戶記錄創建一個.group方法,併爲任何組自動創建一個.users方法。只有這些簡單的行纔會發生更多的事情,所以給Rails指南一個閱讀。

如果您確實想要使用學生模型建立關係,請進入has_many :through部分,但它聽起來並不像您想要的那樣。但是要知道,在涉及到rails的關聯方面有很多選擇,所以一定要瀏覽一下這些部分,找到你認爲你想要的那種。