2011-01-09 3 views
0

ich diese haben in courses.html.erb unter app/views/StudentenSchienen: undefined Verfahren und 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%> 

Ich habe dies in meinem students_controller.rb unter app/controllers:

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 

Und in meinem routes.rb, ich habe:

resources :students, :has_many => [:awards], :member => {:courses => :get, :course_add => :post, :course_remove => :post} 

Allerdings erhalte ich diese Fehlermeldung:

undefined method `course_add_student_path' for #<#<Class:0x105321d78>:0x1053200e0> 

Was fehlt mir hier?

Rake Routen Ausgang:

  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"} 
+0

Was ist Ihr 'Rake routes' ausgegeben? – Heikki

+0

Damit dieses Beispiel funktioniert, müssten Sie eine Route mit dem Namen 'course_add_student' haben. Damit erhalten Sie die Routenhelfer 'course_add_student_path' und' course_add_student_url'. – Heikki

+0

Wie würde ich das tun? nicht: Mitglied genug? – SuperString

Antwort

Verwandte Themen