"schools"} 缺少必需的键:[:id]" /> 没有路线匹配 {:action=>"show", :controller=>"schools"} 缺少必需的键:[:id]

没有路线匹配 {:action=>"show", :controller=>"schools"} 缺少必需的键:[:id]

2024-02-13

我不知道为什么我无法为项目中的每所学校创建信息链接。这是完整的错误:

缺少与 {:action=>"show", :controller=>"schools"} 匹配的路线 必需的键:[:id]

这是我的index.html.erb:

    <% @schools.each do |school| %>
      <%= school.name %>
      <%= link_to "Info", school_path, class: "btn btn-info" %>
      <br>
    <% end %>

school_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 index
    @schools = School.all
  end

  def create
    @school = School.new(school_params)

    @school.save
    redirect_to @school
  end

  private

    def school_params
      params.require(:school).permit(:name)
    end
end  

因为你正在学习,所以我会给你一些背景信息。

--

没有路线匹配

该错误意味着您的铁路路线 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使用创建的resourcesRails 中的指令。我现在不会解释这件事 - 只是在你打电话时说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: "..." %>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

没有路线匹配 {:action=>"show", :controller=>"schools"} 缺少必需的键:[:id] 的相关文章

  • 活动管理:同一列中的多个操作,类似于查看、编辑、删除

    我正在使用 active admin gem 为我的 ruby on Rails 应用程序提供一个管理控制台 我遇到一个问题 我想对索引页面上的每个项目进行多个自定义操作 就像查看 编辑 删除一样 但是 当添加自定义操作时 仅显示最后一个而
  • Bootstrap Typeahead 仅显示第一个字母

    我很难让 Twitter Bootstrap 的 Typeahead 正常工作 Typeahead 仅匹配输入的第一个字母 我在预输入框中的结果看起来像 n n n N N n 我的代码是 有人可以帮忙吗 检查 html 中输出的数据源属性
  • 为什么将 Backbone.js 与 Rails 结合使用? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • docker环境下日志不保存到文件

    在我的生产环境中production rb 我已配置我的日志将保存到文件中 config logger Logger new log production log 当我在本地运行时 使用命令行启动服务器rails s e productio
  • 如何将 current_user 传递给 Sidekiq 的 Worker

    我正在努力通过current user or User find 1 到工作模块 但在 sidekiq 的仪表板中出现错误 localhost 3000 sidekiq retries NoMethodError 未定义方法 支持 字符串
  • Ruby on Rails:如何使用 JSONPath 访问(并保存到数据库)JSON 数组中的嵌套对象/属性?

    我正在尝试将 JSON 对象数组中的数据播种到我的数据库中 我有两个单独的数据库表 属性和单位 一个属性有许多单位 我已经能够通过 API 请求 JSON 数据 然后将其播种到数据库 成功地对属性信息 属性模型 执行此操作 但是 Valua
  • 如何在 Rails ActiveRecord 中的日期指定小于今天的条件

    我正在尝试找出如何提取我的集合中的所有记录的字段publish是真的并且expires比今天少 我有以下内容 但我认为小于部分不起作用 有人可以指出我正确的轨道吗 Announcement where publish true expire
  • Rails、Facebook API、Koala gem — 获取“喜欢”某个页面的用户的所有个人资料

    使用 Rails3 和 koala gem 如何检索 喜欢 FB 页面的用户的所有个人资料 例如 http facebook com DAKINE 有可能吗 作为最终结果 我需要获取一堆存储在数据库中的用户配置文件 Thanks 在 Fac
  • 不使用 RVM 时的 Cron +

    我使用的是RVM环境 RUby 版本 2 1 2 导轨 4 1 1 schedule rb every 1 minute do runner note send mail end I used whenever update crontab
  • 表单提交按钮仅在重新加载后才有效

    我有一个构建表的索引页 我试图允许用户编辑表中的行 我试图以最基本的方式做到这一点 没有 javascript ajax 等 除非 Rails 提供了它 我的表在索引方法中显示良好 并且有一个表单作为表中的最后一行 可用于添加新行 新的形式
  • 如何避免ActiveRecord模型双重保存?

    型号 一 class One lt ActiveRecord Base before save do stuff private def do stuff two Two find 8 two field2 Value two save e
  • ExecJS::Runtime在 Rails 4.1.4 中不可用

    UPDATE 现在一切正常了 谢谢deep https stackoverflow com users 2300000 deep 我安装了 node js 然后得到了一个 TZInfo DataSourceNotFound 错误 通过添加解
  • ActionMailer 响应“501 5.5.4 无效参数”

    我正在 Ruby 2 0 0 上使用 Rails 4 开发一个应用程序 在 Devise 中注册后 应用程序会发送一封电子邮件 这是发送电子邮件的代码 应用程序 模型 sponsor rb after create send email t
  • ActiveStorage上传大型base64编码字符串?

    如果我有在客户端上使用 JavaScript 编辑 生成的图像 例如 裁剪的照片或画布绘图的结果 是否可以使用 ActiveStorage 上传它 它通常是一个包含以下内容的大字符串 img src 它存储在 JavaScript 变量中
  • 带有 JavaScript 函数的 Submit_tag

    我是rails新手 我想在单击提交按钮时调用javascript函数 我使用了submit tag 但该函数没有被触发 我想要如下所示的东西 我用谷歌搜索了这个问题 但找不到解决方案 请任何人提供解决方案 尝试单击 或者 如果您想使用 on
  • Ruby on Rails 是否会使来自外部域的 Graphql 控制器中的会话无效?

    我有一个在不同域上运行的 Rails graphql 服务 但会话变量似乎在graphql controller rb为零 当我在本地运行服务时 会话和上下文按预期工作 这是一个例子 in graphql controller def ex
  • Rails:控制文件存储缓存大小

    Rails 中基于文件的缓存的文档说 请注意 缓存将不断增长 直到磁盘已满 除非您 定期清除旧条目 不幸的是 它没有提供任何有关如何定期清除旧条目的信息 是否设置合适的值 expires in完成这项工作还是清除缓存背后还有其他某种黑魔法
  • Rails:与自身的多对多关系

    我在创建此关联时遇到问题 考虑模型 Entry 我希望条目有许多作为父母的条目 并且我希望条目有许多作为孩子的条目 我想通过一个我称为 关联 的模型来实现这种关系 所以这是我尝试的 移民 class CreateAssociations l
  • nginx 504 网关超时

    我正在 nginx 上使用 phusion passenger 运行 Rails3 0 7 项目 当我正在做 ajax 时 大约需要 15 分钟来处理 调用 ajax 10 分钟后 它会跳出一个 Firebug 错误 显示 504 Gate
  • 使用 Squeal 时可以有条件地在 where 块中添加子句吗?

    首先 我使用 Rails v3 2 9 和 Squeel 1 0 13 这就是我想要做的 我想使用三项身份信息中的任何一项来搜索客户 姓名 出生日期 dob 和社会保险号码 sin 结果集必须包括具有任何标识符 条件的 OR 的任何记录 我

随机推荐

  • RxJava 对列表执行操作并返回可观察值

    我是 RxJava 特别是 RxJava2 的新手 并且在看似相对简单的操作中遇到了一些麻烦 我需要从数据库获取一些数据 迭代数据 它表示为列表 对每个项目执行操作 将数据包装在另一个对象中并返回 这是我到目前为止所拥有的 mDataMan
  • 如何使用安卓exoplayer

    我正在寻求实施 Google 的ExoPlayer在我的应用程序中 他们的文档对我来说似乎相当模糊 我所寻找的只是从 URL 播放视频 没有复杂的自定义设置或类似的东西 尚未找到任何有关如何操作的教程 他们在 git 上提供的示例对于我的需
  • AVAudioEngine() 播放不工作

    我正在尝试使用改变声音的音调AVAudioEngine 在斯威夫特 这是我的代码 func setUpEngine let fileString NSBundle mainBundle pathForResource 400 ofType
  • C命令行密码输入

    我想允许用户使用命令行界面输入密码 但我不想在屏幕上显示此密码 或显示 在C语言中如何实现呢 谢谢 Update 我只在 Linux 上工作 所以我其实并不关心Win或者其他系统 我尝试了卢卡斯的解决方案 效果很好 不过 我还有一个问题 如
  • Java新线程需要内存

    我有一个大量创建线程的应用程序 结果我得到了内存不足错误 我的想法是等到有足够的可用空间来创建下一个Thread 但因此我需要知道创建一个线程需要多少内存以及这个内存量是否可用 有没有办法获取线程所需的内存量 我怎样才能确定这个内存量是否可
  • 为什么 UIButton 框架被 setTitle: forState: 方法重置

    问题如下 在某个时刻 按钮的位置发生了变化 此后 按钮的标题也必须更改 位置通过动画 UIView 动画块 更改 并且当设置标题时 帧返回到原始值 动画之前 那么 我该如何解决这个问题 为什么会发生这种情况 用代码更新 CGRect but
  • 如果客户端禁用了 Javascript,我该怎么办?

    我的网站严重依赖 Javascript 如果我将其关闭 我的网站就会看起来非常丑陋 我想通过向用户显示打开它的通知来强制用户使用 Javascript 否则提示他该网站无法查看 我该怎么做才能实现这一目标 看看这里 无脚本标签 http w
  • Android 设备可以同时在外围模式和中央模式下运行蓝牙 LE 吗?

    是否可以在运行外设和中央模式的 Android 设备中安装 LE 蓝牙 同时用于广告和收听 是的 您绝对可以作为外设并同时连接其他外设 对此的限制之一是设备限制 请下载BLE 中央 外设检查器请确保您的设备支持 BLE 外设 BLE 中央或
  • WinAPI:如何在自定义编辑控件中处理键盘输入

    因此 我使用 Windows API 在 C 中创建自己的编辑控件 多行文本框 一切进展顺利 但我对一件事有点困惑 首先 该控件被构建为能够处理 unicode 并且所有输入都将转换为 unicode 换句话说 所有输入都将存储为wchar
  • 如何在JavaEE中响应后执行代码

    我尝试找到一种在响应后运行代码的方法 但没有成功 就我而言 服务器向我发送数据以便让我完成工作 但此操作可能会很长 例如 向 5000 个联系人发送短信并检查谁收到了它 服务器期望立即收到 HTTP 204 No Content 响应 以确
  • 在 if/else 中使用 Promise

    我有一个条件语句 其中我需要执行两个操作之一 然后在任一操作解决后继续 所以我的代码目前如下所示 if shoud do thing a should do thing a is just a variable that determine
  • 从 Arraylist 中获取恰好出现 3 次的字符串

    我有一个ArrayList其中包含一些重复的值和出现三次的元素 我想将那些出现三次的值专门收集到另一个中ArrayList like Arraylist
  • 如何通过递减来拉伸 numpy 数组的特定项?

    给定边界值k 有没有一种矢量化的方式来替换每个数字n连续递减的数字从n 1 to k 例如 如果k是 0 我想更换np array 3 4 2 2 1 3 1 with np array 2 1 0 3 2 1 0 1 0 1 0 0 2
  • WTForms 不验证 - 没有错误

    我在使用 WTForms 库时遇到了一个奇怪的问题 为了进行测试 我创建了一个包含单个字段的表单 class ArticleForm Form content TextField Content 它接收一个简单的字符串作为内容 现在我使用f
  • 如何找出应用程序崩溃的原因 - Windows 10 LTSB

    我有使用 VS 2017 15 7 4 构建的应用程序 它是 64 位命令行 C 应用程序 我已将其与所有依赖项 DLL 一起复制到使用 Windows 10 Enterprise 2016 LTSB 64 位 版本为版本 10 0 143
  • @Published 属性包装器不适用于 ObservableObject 的子类

    我有一个符合 ObservableObject 协议的类 并使用它自己的变量和 Published 属性包装器创建了一个子类来管理状态 使用子类时 published 属性包装器似乎被忽略 有谁知道这是否是预期行为以及是否有解决方法 我正在
  • 确保列表中的所有字典都具有相同的键

    我有一个包含字典的列表 例如 x 42 x 23 y 5 并希望确保所有字典具有相同的键 其值为None如果原始字典中不存在该密钥 所以上面的列表应该变成 x 42 y None x 23 y 5 最美丽 最Python式的方法是什么 目前
  • flutter firebase querysnapshot:dart 代码中不区分大小写的方法

    我是连接了 firebase 的 flutter 用户 当用户调用搜索功能然后提交字符串时 我尝试使用 querysnapshot 调用云 Firestore 中的用户列表 我尝试过的代码片段如下 Future
  • Android 触摸时旋转图像

    我正在编写一段代码 它使用 onTouchListener 缩放图像 缩放图像并移动 现在我想使用触摸旋转图像 以下是我的代码 Override public boolean onTouch View v MotionEvent rawEv
  • 没有路线匹配 {:action=>"show", :controller=>"schools"} 缺少必需的键:[:id]

    我不知道为什么我无法为项目中的每所学校创建信息链接 这是完整的错误 缺少与 action gt show controller gt schools 匹配的路线 必需的键 id 这是我的index html erb br school co