0
私はcourses.html.erbでこれを持っているアプリ/ビュー/学生の下レール:未定義のメソッドとform_tags
<% if @student.courses.count < Course.count then%>
<% form_tag(course_add_student_path(@student)) do%>
<%= select_tag(:course, options_from_collection_for_select(@student.unenrolled_courses, :id, :name))%>
<%= submit_tag 'Enroll'%>
<%end%>
<%else%>
<p><%=h @student.name%> is enrolled in every course. </p>
<%end%>
私はアプリ/コントローラの下で私のstudents_controller.rbでこれを持っている:
def course_add
@student = Student.find(params[:id])
@course = Course.find(params[:course])
unless @student.enrolled_in?(@course)
@student.coursess << @course
flash[:notice] = 'course added'
else
flash[:error] = 'course already enrolled'
end
redirect_to :action => courses, :id => @student
end
そして、私のroutes.rbをして、私が持っている:
resources :students, :has_many => [:awards], :member => {:courses => :get, :course_add => :post, :course_remove => :post}
しかし、私はこのエラーを取得しています:
undefined method `course_add_student_path' for #<#<Class:0x105321d78>:0x1053200e0>
私はここで何が欠けていますか?
レーキルート出力:
students GET /students(.:format) {:action=>"index", :controller=>"students"}
POST /students(.:format) {:action=>"create", :controller=>"students"}
new_student GET /students/new(.:format) {:action=>"new", :controller=>"students"}
edit_student GET /students/:id/edit(.:format) {:action=>"edit", :controller=>"students"}
student GET /students/:id(.:format) {:action=>"show", :controller=>"students"}
PUT /students/:id(.:format) {:action=>"update", :controller=>"students"}
DELETE /students/:id(.:format) {:action=>"destroy", :controller=>"students"}
courses GET /courses(.:format) {:action=>"index", :controller=>"courses"}
POST /courses(.:format) {:action=>"create", :controller=>"courses"}
new_course GET /courses/new(.:format) {:action=>"new", :controller=>"courses"}
edit_course GET /courses/:id/edit(.:format) {:action=>"edit", :controller=>"courses"}
course GET /courses/:id(.:format) {:action=>"show", :controller=>"courses"}
PUT /courses/:id(.:format) {:action=>"update", :controller=>"courses"}
DELETE /courses/:id(.:format) {:action=>"destroy", :controller=>"courses"}
student_awards GET /students/:student_id/awards(.:format) {:action=>"index", :controller=>"awards"}
POST /students/:student_id/awards(.:format) {:action=>"create", :controller=>"awards"}
new_student_award GET /students/:student_id/awards/new(.:format) {:action=>"new", :controller=>"awards"}
edit_student_award GET /students/:student_id/awards/:id/edit(.:format) {:action=>"edit", :controller=>"awards"}
student_award GET /students/:student_id/awards/:id(.:format) {:action=>"show", :controller=>"awards"}
PUT /students/:student_id/awards/:id(.:format) {:action=>"update", :controller=>"awards"}
DELETE /students/:student_id/awards/:id(.:format) {:action=>"destroy", :controller=>"awards"}
courses_student GET /students/:id/courses(.:format) {:action=>"courses", :controller=>"students"}
GET /students(.:format) {:action=>"index", :controller=>"students"}
POST /students(.:format) {:action=>"create", :controller=>"students"}
GET /students/new(.:format) {:action=>"new", :controller=>"students"}
GET /students/:id/edit(.:format) {:action=>"edit", :controller=>"students"}
GET /students/:id(.:format) {:action=>"show", :controller=>"students"}
PUT /students/:id(.:format) {:action=>"update", :controller=>"students"}
DELETE /students/:id(.:format) {:action=>"destroy", :controller=>"students"}
あなた 'routes'出力を熊手ありませんか? – Heikki
その例を動作させるには、 'course_add_student'という名前のルートが必要です。これはあなたにルートヘルパー 'course_add_student_path'と' course_add_student_url'を与えます。 – Heikki
どうすればいいですか? isnt:メンバーは十分ですか? – SuperString