You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby on Rails使用form_with时出现syntax error, unexpected tIDENTIFIER错误

Rails form_with 语法错误修复方案

问题核心

你的代码报错是因为哈希参数之间缺少逗号,加上冗余的引号写法也导致了语法解析失败。

修正后的代码(两种可选)

方案1:遵循Rails约定(推荐)

如果@request是已经保存过的模型实例,form_with会自动推断出PATCH方法和对应的更新路径,无需手动指定:

<%= form_with model: @request do |f| %>

方案2:手动指定method和url

如果必须明确指定参数,要确保哈希键值对之间用逗号分隔,且method直接用符号写法:

<%= form_with model: @request, method: :patch, url: requests_update_path(id: @request.id) do |f| %>

错误原因拆解

  1. 原代码中model: @request和method: :"patch"之间没有加逗号,Ruby解析时会把method:当成方法调用,触发syntax error, unexpected tIDENTIFIER
  2. method: :"patch"属于冗余写法,直接用method: :patch即可,符号不需要额外加引号包裹

补充:form_tag的正确写法

如果改用form_tag,注意参数结构和form_with不同,url是第一个参数,选项哈希放在后面:

<%= form_tag requests_update_path(id: @request.id), method: :patch do %>

内容的提问来源于stack exchange,提问作者Francisca Aguayo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 22:05:21