2011-01-30 74 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

相关问题