【发布时间】:2015-11-16 05:29:51
【问题描述】:
我正在尝试为我的项目中的特定学校创建新教师,但出现此错误:
没有路线匹配 [POST] "/schools/3/teachers/new"
这是我的 Teachers_controller.rb:
class TeachersController < ApplicationController
def new
@teacher = Teacher.new
end
def create
@teacher = Teacher.new(teacher_params)
@teacher.save
redirect_to school_path(school)
end
private
def teacher_params
params.require(:teacher).permit(:firstName, :lastName, :middleName)
end
end
schools_controller.rb:
class SchoolsController < ApplicationController
def show
@school = School.find(params[:id])
end
def new
@school = School.new
end
def edit
@school = School.find(params[:id])
end
def update
@school = School.find(params[:id])
if @school.update(school_params)
redirect_to @school
else
render 'edit'
end
end
def index
@schools = School.all
end
def create
@school = School.new(school_params)
if @school.save
redirect_to schools_path
else
render 'new'
end
end
def destroy
@school = School.find(params[:id])
@school.destroy
redirect_to schools_path
end
private
def school_params
params.require(:school).permit(:name)
end
end
routes.rb:
Rails.application.routes.draw do
resources :schools do
resources :teachers
end
# The priority is based upon order of creation: first created -> highest priority.
# See how all your routes lay out with "rake routes".
# You can have the root of your site routed with "root"
root 'welcome#index'
还有教师/new.html.erb:
<%= form_for :teacher, url: school_teachers_path(school) do |f| %>
<p>
<%= f.label :firstName %><br>
<%= f.text_field :firstName %>
</p>
<p>
<%= f.label :lastName %><br>
<%= f.text_field :lastName %>
</p>
<p>
<%= f.label :middleName %><br>
<%= f.text_field :middleName %>
</p>
<p>
<%= f.submit %>
</p>
<% end %>
【问题讨论】:
-
在渲染
new创建教师页面时是否出现此错误? -
目前,我可以看到表格并填写老师的信息:名字、姓氏和中间名。然后,错误出现了。
-
你能知道
school_teachers_path(school)中的school变量是从哪里来的吗?
标签: ruby-on-rails ruby ruby-on-rails-4 ruby-on-rails-3.2 nested-attributes