首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在rails中编辑表单-没有与[PUT]匹配的路由

在Rails中编辑表单时,如果出现"没有与[PUT]匹配的路由"的错误,通常是由于路由配置不正确导致的。

在Rails中,表单的编辑操作通常使用HTTP的PUT请求来提交数据。PUT请求用于更新资源,而不是创建新资源。因此,当我们在编辑表单中提交数据时,需要确保路由配置中存在与PUT请求匹配的路由。

要解决这个问题,可以按照以下步骤进行操作:

  1. 确保在表单中使用了正确的HTTP方法。在Rails中,可以使用form_forform_with方法生成表单,确保在表单中指定了method: :put
  2. 例如:
  3. 例如:
  4. 确保在路由配置中存在与PUT请求匹配的路由。在Rails的路由配置文件(通常是config/routes.rb)中,需要添加一个与PUT请求匹配的路由规则。
  5. 例如:
  6. 例如:
  7. 上述代码将生成与编辑和更新操作相关的路由,其中包括PUT请求所需的路由。
  8. 确保控制器中存在相应的动作方法。在控制器中,需要定义与PUT请求对应的动作方法,用于处理表单的提交和更新操作。
  9. 例如:
  10. 例如:
  11. 确保在update方法中编写了正确的逻辑来处理表单数据的更新。

综上所述,要解决"没有与[PUT]匹配的路由"的错误,需要确保表单中使用了正确的HTTP方法(PUT),路由配置中存在与PUT请求匹配的路由规则,并在控制器中定义了相应的动作方法来处理更新操作。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【Laravel系列3.4】中间件路由控制器应用

中间件路由控制器应用 中间件是什么?传统框架年代,很少会有中间件这个概念。我最早接触这个概念其实是在学习 MySQL 时候,了解过 MyCat 这类组件也被称为中间件。...比如说,我们请求发过来,没有到达路由或者控制器时候,就可以通过中间件做一些预判,像参数合法不合法、登录状态判断之类。...注意,其它没有路由是不是走这个中间件。也就是说,路由中定义中间件,只有我们指定路由才会执行相应中间件代码。...我们使用依然是和上面那个路由相同控制器方法,只不过在这个路由上,我们没有指定中间件,而是控制器代码 构造函数 里面通过 middleware() 方法指定了中间件,这样就可以让这个控制器所有方法都去执行指定中间件内容...我们再定义一个新控制器方法并且指定一个没有中间件路由来测试。

2.6K50
  • 探秘公有IP地址私有IP地址区别及其路由控制作用

    由于主机A路由没有目标地址10.1.2.10匹配网络地址,所以包被转发到默认路由器(路由器1)。...路由器1收到IP包后,它路由匹配目标地址相同网络地址记录,发现匹配成功,所以将IP数据包转发到了10.1.0.2这台路由器2。...以下是几种常见处理方式:发送方可以选择将IP包发送到默认网关。默认网关是路由表中指定用于处理没有匹配情况特殊路由器。...如果路由控制表没有目标地址匹配项,本地网关可能会使用默认网关来处理数据包。默认网关是指当找不到匹配项时,数据包将被发送到预设下一跳路由器。...IP地址路由控制起重要作用,通过路由表进行转发。如果路由没有匹配项,可以使用默认网关、尝试其他路由表或发送ICMP路由不可达消息来处理。

    57710

    Laravel 控制器:从 MVC 模式聊起

    1、控制器概述 到目前为止,我们定义所有路由都是基于闭包函数实现,前面已经提到过,随着应用体量增长,不可能将所有路由都定义单个文件,且对于复杂业务逻辑,闭包函数也不足以支撑,所以和其他 Web...说到这里,我们就不得不提一下 MVC 设计模式,这个模式最早在 Ruby On Rails 引入,然后被基本上所有的 Web 框架所借鉴和遵循,Laravel 也不例外。... MVC 模式,M 代表模型(Model),V 代表视图(View),C 代表控制器(Controller),控制器负责组织路由和业务逻辑(当然,对于更加复杂业务逻辑还会引入 Service 层)...,默认情况下,如果没有指定完整命名空间,那么路由文件 web.php 中所有控制器都位于 App\Http\Controllers 命名空间下,所以定义控制器路由时候可以省略这个命名空间前缀。.../{id}/edit edit() post.edit 编辑文章表单页面 PUT post/{id} update() post.update 获取编辑表单输入并更新文章 DELETE post/{id

    11.3K51

    使用rails实现最简单CRUD

    接下来定义控制器: class HelloController < ApplicationController def index end end rails足够智能可以自己视图文件夹寻找名为 index.html.erb...视图文件,将视图文件写入以下内容 hello, rails 此时,浏览器打开 / 和 /hello/index/ 路径都将返回同样内容 ?...使用以下命令生成控制器: rails generate controller Articles 配置articles路由: resources :articles 使用 rails routes 命令查看当前路由配置...按照上文中方法创建好 new.html.erb 文件和 new 方法, new.html.erb 文件写入: new article <%= form_with(scope:...此时我们需要定义提交之后处理路径,从上面的路由配置我们可以知道对应于 create 方法 def create @article = Article.new(article_params)

    3.2K40

    Gin 路由注册请求参数获取

    put/patch:patch是局部更新,put是全部(基本上更新都用put) delete:从服务器删除 在请求路径带过滤,通过url上传参形式传递搜索条件 https:/...五、Gin 路由类型 Gin 支持很多类型路由: 静态路由:完全匹配路由,也就是前面 我们注册 hello 路由。 参数路由路径带上了参数路由。 通配符路由:任意匹配路由。...Gin框架路由组是一种用于组织和管理路由机制。...以下是关于路由介绍: 7.1 普通路由 普通路由是指直接注册Gin引擎上路由,这些路由没有被分组,是独立存在。...9.2 获取表单数据 使用c.ShouldBind或c.ShouldBindJSON方法可以将POST请求表单数据或JSON数据绑定到结构体

    35810

    通过 Laravel 创建一个 Vue 单页面应用(四)

    我们 第三部分 中放弃构建真实用户端,而学习使用 Vue 路由获取组件数据新方式。现在我们准备将注意力转移到为用户创建 CRUD(增删改查)功能上 —— 本教程将聚焦在编辑已存在用户。...处理第一个表单时,我们有机会了解如何定义动态 Vue 路由。我们路由动态部分是用户数据记录匹配用户 ID。...现在你打开 /users/1/edit 应该看到一个空白表单: 我们准备编辑已经存在用户,所以下一步会说明怎么获取路由中动态 :id , UsersEdit.vue 中加载用户数据。...第一步,我们 routes/api.php 定义新路由 PUT /api/users/{user} : Route::namespace('Api')->group(function () {...我们一直直接请求 /users/:id/edit 页面, 但是,我们没有界面的任何地方添加路由

    2K10

    绕过GitHubOAuth授权验证机制($25000)

    token在内隐藏表单字段POST请求。...乍一看,这不算是什么安全问题,但是,深入探究发现,路由router机制存在隐患。 Rails 路由能够识别 URL 地址,并把它们分派给控制器动作或 Rack 应用进行处理。...它还能生成路径和 URL 地址,从而避免视图中硬编码字符串。 HTTP HEAD请求时Rails路由在说谎 HEAD方法跟GET方法相同,只不过服务器响应时不会返回消息体。...所以Rails以及其它一些网络框架采用了一个聪明技巧:它试图将HEAD请求路由GET请求相同地方,然后运行控制器代码,以此省略掉消息响应体。...发送一个授权验证HEAD请求,将会发生什么情况?前面我们说过,Rails路由会把它当成GET请求来处理,所以它会被发送到控制器

    2.8K10

    【Laravel系统3.3】控制器表单验证

    控制器表单验证 在请求过程,控制器往往是我们在做业务开发时绕不过一环。从 MVC 理论成熟到现代化开发过程,控制器一直扮演着重要角色。...之前路由时候也说过这个问题,但是 Laravel ,实现了路由和控制器解耦,所以我们控制器是可以随意定义并且命名,直接通过路由来进行绑定。...,控制器中和在路由回调函数接收参数没有什么区别。...两种方式本质上没有什么区别,代码我们也打印了这两种方式对象是否是全等。...GET /test/resource/{id} 显示对应id内容 GET /test/resource/{id}/edit 编辑(显示表单PUT/PATCH /test/resource/{id

    8.7K20

    认识路由交换机,常见企业组网起什么样作用呢?

    前言 从这篇开始正式进入路由交换网络讲解,这一篇,不讲解如何进入路由器跟交换机、也不讲解基础命令行,先来了解路由器跟交换机常见网络起到什么样作用。...你印象路由器 可能对于现在初学网络朋友来说,接触最多就是家用无线路由器了,记得博主刚接触路由时候,还是有线路由器,那会智能手机没兴起时候,市面上主流路由器就是有线路由器,随着无线需求增加...当一个数据包经过三层口时候,该接口会读取数据包IP头部目的IP作为转发依据,然后查询路由表进行转发,并且接口之间是隔离广播域,每个接口都可以配置IP地址。...(1)早期家用路由企业路由器、交换机特点 家用路由器:早期家用路由器其实是不带无线,因为那会无线需求并不大,移动互联网没有兴起,主要终端集中电脑,并且一个家庭里面可能有多台电脑需要同时连接...(这个后续学到了还会在提及),有些方式跟概念都是老知识点内容了,不太适合当前网络设备,下一篇来了解拿到了一台新路由器跟交换机后,应该如何进入,以及学会查找文档。

    29310

    NodeJS背后的人:Express

    :GET、POST、PUT、DELETE ··· (PATH,Handler):PATH定义匹配路由路径,Handler 路由匹配时执行回调函数:(请求对象req,响应对象res)=>{} //多种路由规则...("404"); }); 路由定义匹配规则: 建议:all全路由定义最后位置 因为:Express 处理请求时会按照路由定义顺序进行匹配,找到第一个匹配路由就停止; 为避免干扰...; } ); URL路由命名参数: Express 路由命名参数: 是一种 路由URL路径 定义参数名称来捕获请求特定部分方法, 这允许你路由处理器访问这些参数值,从而根据请求不同条件执行不同逻辑...命名/XXX 命名参数值存储 req.params 对象,且res.query 不冲突:/XXX/:命名/:命名/XXX?...对于 / 路径请求,如果配置了静态资源中间件 Express会默认响应:index.html 如果静态资源路由规则同时匹配,谁先匹配谁就响应:自上而下原则,声明靠前响应; 中间件执行顺序

    11710

    如何部署Mina:入门教程

    生活在没有Rails世界:Mina可以做到以上所有,甚至更多,并且对Rails没有任何严重依赖。使用Mina,您几乎可以部署所有内容。...RAKE - Ruby Make Web开发人员,程序员以及任何科学或计算机打交道的人都应该很好地理解他们使用工具。Mina案例,RAKE最为关键。 但是,什么是RAKE?...RAKE是一系列GNU Make类似的组件,工具和定义。Make是最广泛和最受欢迎实用程序之一,自20世纪70年代末推出以来,它已经内置于Unix系统。Rake可以称为构建语言。...它用于以结构化方式定义任务,以便在命令行执行。 本质上,这些命令通常系统管理相关,例如应用程序部署或管理服务器。...获取Mina 使用Mina时,您需要确保拥有一个稳定Ruby环境,并且安装了必要依赖项并且运行正常 - 例如gem。 本节,我们将首先在CentOS 6系统上创建Ruby环境。

    4.5K40

    这份PHP面试题总结得很好,值得学习

    PUT、DELETE方式区别 HTTP定义了服务器交互不同方法,最基本是POST、GET、PUT、DELETE,与其比不可少URL全称是资源描述符, 我们可以这样理解:url描述了一个网络上资源...3.1表单get和post提交方式区别 get是把参数数据队列加到提交表单action属性所指url,值和表单内各个字段一一对应, 从url可以看到;post是通过HTTPPOST机制,将表单内各个字段与其内容防止...GET不同是,PUT请求是向服务器端发送数据,从而改变信息,该请求就像数据库update操作一样,用来修改数据内容,但是不会增加数据种类等,也就是说无论进行多少次PUT操作,其结果并没有不同...左外连接,也称左连接,左表为主表,左表所有记录都会出现在结果集中,对于那些右表没有匹配记录,仍然要显示,右边对应那些字段值以NULL来填充。...30、什么是静态路由,其特点是什么?什么是动态路由,其特点是什么? 静态路由是由系统管理员设计构建路由表规定路由。适用于网关数量有限场 合,且网络拓朴结构不经常变化网络。

    5K20

    浅谈Laravel POST,PUT,PATCH 路由区别

    PUT方法一般会用来更新一个已知资源,除非在创建前,你完全知道自己要创建对象URI。...PATCH方法是新引入,是对PUT方法补充,用来对已知资源进行局部更新 GET 获取资源 POST 创建资源 PUT 编辑/更新资源(需提交完整资源字段) PATCH 编辑/更新资源(可以提交需要更新字段...) DELETE 删除资源 OPTIONS 服务器允许哪些请求谓词 这些就是最近比较流行RestFul模式常用,另HTML表单只支持POST、GET两种请求方式,PUT、PATCH以及DELETE是...Laravel伪造HTTP请求方式,需要在表单添加才能生效,还要配置路由。...以上这篇浅谈Laravel POST,PUT,PATCH 路由区别就是小编分享给大家全部内容了,希望能给大家一个参考。

    1.7K41

    微服务 day03:CMS页面管理开发

    查询条件如下: 站点Id:精确匹配 模板Id:精确匹配 页面别名:模糊匹配 0x02 服务端 Dao层 使用 CmsPageRepository findAll(Example var1,...1)创建页面 创建page_add.vue页面 2)配置路由 cms模块路由文件配置“添加页面”路由: {path:'/cms/page/add',name:'新增页面',component:...$route.query 表示取出路由参数列表,有两个取路由参数方法: a、通过路由上添加 key/value 串使用 this.route.query 来取参数,例如:/router1?...http://element.eleme.io/#/zh-CN/component/form 表单验证”例子 2)点击提交按钮触发校验 form表单上添加 ref属性(ref="pageForm...",component: page_edit, hidden:true }, ] path :pageId 表示路由url定义了一个pageId变量 构建前端页面 page_list

    2.2K10

    nodeJS之Express框架--路由

    1.get路由 // get路由 app.get('/',(req,res)=>{ res.send("首页"); }); 2.post路由 // post路由--表单或者ajax请求触发 app.post...('/dologin',(req,res)=>{ res.send('post'); }); 3.put路由 // put路由 app.put('/insertData',(req,res)=>{...路由路径请求方法结合,定义了可以发出请求端点。路由路径可以是字符串,字符串模式或正则表达式。 字符?,+,*,和()是他们正则表达式对应子集。...*匹配路由路径 // 写*匹配是中间任意字符 // *匹配是/efgh或者/efghnhhggh等等 app.get('/ef*gh',(req,res)=>{ res.send("*匹配路径...('/sendMsg/i',(req,res)=>{ res.send("正则匹配路径"); }); 三、路由参数 1.get传值 动态路由传值使用连接符get路由传值,参数req.query

    1.9K40

    3分钟短文:Laravel请求对象方法极多,可不是花拳绣腿

    代码时间 一个网络请求在到达应用程序之前,经历了http路由匹配,握手连接, 数据发送等等或简单,或复杂步骤。...也同样有多重请求方式,如GET POST PUT OPTION DELETE 等等标准协议里内容。...>input()}); 匿名函数,使用强制类型Request进行注入,变量$request就是一个实例化后Request对象, 可以访问其属性和方法。...两者请求方法不一样。 那么对于用于csrf拦截字段_token,系统生成,系统自检,我们表单并不使用, 可以使用 except 方法将其排除在外。...这类似黑名单功能。相对应地使用白名单,手动指定哪些字段需要展示。

    1.4K20
    领券