我有一个应用程序,用户可以在其中创建课程,并且每门课程都有_one syllabus。我怎么能去配置我的课程和教学大纲(我知道它是教学大纲,但显然 Rails 没有)控制器和我的路线,所以在课程页面上有一个链接来创建或显示课程的教学大纲,以及一个返回的链接显示教学大纲页面中的课程?
在我的路线中,我有:
resources :courses do
resources :syllabuses
member do
put :enroll #this is so users can enroll in the course
end
end
目前,因此 course_id 将保存在我的课程控制器的教学大纲表中,我有:
def create_syllabus
@course = Course.find(params[:id])
@syllabus = @course.build_syllabus(params[:syllabus])
if @syllabus.save
redirect_to @syllabus, notice: "Successfully created syllabus."
else
render :new
end
end
然后在我的课程显示页面中,我有:
<section>
<% if (current_user.courses.includes(@course) ||
current_user.coursegroups.find_by_course_id_and_role(@course.id, "admin")) %>
<%= render 'create_syllabus' %>
<% end %>
</section>
然后在我的 create_syllabus 表单中(在我的课程视图文件夹中),我尝试使用以下方法开始:
# I have @course = Course.find(params[:id]) defined in show in the
#courses_controller
<%= form_for @course.create_syllabus do |f| %>
<%= form_for @course.syllabus.create_syllabus do |f| %>
<%= form_for @course.syllabus.create do |f| %>
我得到了每个未定义的方法错误。