嘿,我被困在铁轨上。
我有一个用户模型,一个课程模型和一个CourseEnrollment模型。
当我想在我的课程索引视图中添加链接时,如
link_to 'join' CourseEnrollment.create(:course_id => course.id, :user_id => current_user)
这个create方法是否属于我的模型?我很困惑,因为在我的用户模型中我定义了一个使用role_assignments.create(.....)
的方法。这两种创建方法有什么区别?顺便说一句,我不能使用course_enrollments.create。感谢你的时间
答案 0 :(得分:2)
我对你的要求感到有点困惑,但我会尽我所能。
(首先,在您的示例中,current_user
应该是current_user.id
。)
当您致电CourseEnrollment.create
时,您只需创建一个具有指定属性的新CourseEntrollment
模型。
假设您的User
模型has_many :role_assignments
:
当您从@role_assignments.create
模型中呼叫User
时,Rails会自动为您创建关联(例如,将user_id
设置为用户的id
。但是,这不必在模型本身内完成:
current_user.role_assignments.create(...) # automatically sets the association
假设您的User
模型也 has_many :course_enrollments
,以下内容将创建CourseEnrollment
模型并自动将其与当前用户关联:
current_user.course_enrollments.create(...)