2011-01-09 68 views
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"} 
+0

什麼是您的'耙routes`輸出? – Heikki 2011-01-09 23:03:16

+0

爲了這個例子的工作,你需要一個名爲`course_add_student`的路由。這給你路由助手`course_add_student_path`和`course_add_student_url`。 – Heikki 2011-01-09 23:05:28

回答

相關問題