ユーザーがコースを作成できるアプリがあり、各コースにはシラバスが1つあります。コースとシラバス(シラバスであることはわかっていますが、Railsはそうではないようです)コントローラーとルートを構成するにはどうすればよいですか。コースのページには、コースのシラバスを作成または表示するためのリンクと、ショーのシラバスページからのコース?
私のルートでは:
resources :courses do
resources :syllabuses
member do
put :enroll #this is so users can enroll in the course
end
end
現在、course_idはcourses_controllerのシラバステーブルに保存されるので、次のようになります。
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| %>
そして、それらのそれぞれについて未定義のメソッドエラーが発生します。