2012-06-25 66 views
0

我有以下型號:通過has_many的Rails窗體 - 選擇哪個模型?

Student has_many :subjects, :through => :classes 

Subject has_many :students, :through => :classes 

Class belongs_to :subject 
     belongs_to :student 

模型類有一個名爲級別的附加屬性(外鍵之間,以主題和學生表)。

基本上我希望能夠有一個表格,讓學生選擇一個主題,並將該主題與其記錄相關聯。所以,我有這個:

ClassesController < ApplicationController 

def new 
@list_of_subjects = Subject.all 
# What should I do here? 
end 

我的問題是:我應該如何創建表單的對象?它應該來自哪個模型,主題,學生還是班級?我希望能夠在班級表中創建一個關聯學生和學生選擇的主題的記錄,但我不知道我是否做錯了。

感謝

回答

0

我不認爲你可以創建一個名爲Class模型,因爲它是一個關鍵字,但這是不倫不類......

首先我覺得你的控制器和視圖應該使用Student因爲這是選擇這些東西的學生。接下來,我認爲您想要做的是在您的Student型號中添加accepts_nested_attributes_for :class,該型號允許您從Student創建Class連接器型號的實例。

你想要做的事聽起來有點像我試圖做的事情。我有我的完整代碼。

Using nested attributes to easily select associations in a form

我後來改進它在這個問題有點太使代碼不太可怕:

Rails: How do I prepend or insert an association with build?

我知道這是晚了,但我希望幫助。