因为你正在学习,所以我会给你一些背景信息。
--
没有路线匹配
该错误意味着您的铁路路线 http://guides.rubyonrails.org/routing.html#the-purpose-of-the-rails-router找不到您所参考的路线。
它给出了以下规范:
缺少必需的键:[:id]
这意味着该路线exists,但你还没有填写id
范围。
--
为了帮助您了解其工作原理,请考虑下列的 http://guides.rubyonrails.org/routing.html#crud-verbs-and-actions:
GET /photos photos#index display a list of all photos
GET /photos/new photos#new return an HTML form for creating a new photo
POST /photos photos#create create a new photo
>> GET /photos/:id photos#show display a specific photo
GET /photos/:id/edit photos#edit return an HTML form for editing a photo
PATCH/PUT /photos/:id photos#update update a specific photo
DELETE /photos/:id photos#destroy delete a specific photo
这些是routes使用创建的resources
Rails 中的指令。我现在不会解释这件事 - 只是在你打电话时说school_path
,你指的是GET /schools/:id
您的路线中的路径。
因此,您必须记住的是,当您调用此路由时,您必须发送一个id
对它——url.com/schools/1
。这允许控制器查找适当的记录(School.find params[:id]
).
你打电话时...
<%= link_to "Info", school_path, class: "btn btn-info" %>
...你没有传递任何参数school_path
.
要修复它,您必须通过id
,如果您传递适当的对象,Rails 将自动执行此操作:
<%= link_to "Info", school_path(school), class: ".." %>
or
<%= link_to "Info", school, class: "..." %>