2011-01-30 84 views
1

嘿我堅持我的方向在鐵軌。這些創建方法之間的區別是什麼

我得到了用戶模型,課程模型和課程註冊模型。

當我想添加一個鏈接在我的課程索引視圖像

link_to 'join' CourseEnrollment.create(:course_id => course.id, :user_id => current_user) 

這是否創建方法屬於我的模型?我很困惑,因爲在我的用戶模型中,我定義了一個使用role_assignments.create(.....)的方法。這兩種創建方法有什麼區別?順便說一句,我無法使用course_enrollments.create。 Thx你的時間

回答

2

我有點困惑,至於你在問什麼,但我會盡我所能。

(首先,在你的榜樣,current_user也許應該是current_user.id

當你調用CourseEnrollment.create,你只是創建一個新的CourseEntrollment模型指定屬性。

假設你User模式has_many :role_assignments

當您從User模型中調用@role_assignments.create,導軌自動爲您創建的關聯(例如設置user_id用戶的id)。這並不一定要在模型本身內完成,但:

current_user.role_assignments.create(...) # automatically sets the association

假設你User模型has_many :course_enrollments,下面將創建一個CourseEnrollment模型,並自動將其與當前用戶相關聯:

current_user.course_enrollments.create(...)

+0

嘿thx爲您的答覆。我也可以在我的視圖中使用`current_user.course_enrollments.create(:course_id => course.id,:user_id => current_user`而不是`CourseEnrollment.create(...)` – daniel 2011-01-30 03:45:52

相關問題