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

Rails Turbo Frame渲染新建表单报错:缺失partial cust/customer_dates/_new

问题分析

你犯了一个常见的Rails视图渲染错误:render new_cust_customer_date_path的写法是错误的。render方法如果接收字符串参数,会默认将其当作局部视图文件的路径(要求文件以_开头),而不是路由路径。系统因此尝试寻找cust/customer_dates/_new这个局部视图,但你只有new.html.erb和_form.html.erb,所以触发了缺失局部的报错。

解决方案

有两种可行的修正方式,根据你的需求选择:

方式一:直接渲染表单局部视图

既然new.html.erb本身也是渲染_form.html.erb的,你可以直接在Turbo Frame里调用这个表单局部:

  1. 先在Cust::CustomerBookingsController的index方法中初始化新对象:
def index
  @customer_date = Cust::CustomerDate.new
end
  1. 修改/views/cust/customer_bookings/_main.html.erb:
<%= turbo_frame_tag @customer_date do %>
  <%= render "cust/customer_dates/form", customer_date: @customer_date %>
<% end %>

方式二:用Turbo Frame的src属性加载路由页面

如果你想复用new.html.erb的完整内容,可以让Turbo Frame通过路由请求并加载页面:

修改/views/cust/customer_bookings/_main.html.erb:

<%= turbo_frame_tag @customer_date, src: new_cust_customer_date_path %>

这种方式下,Turbo会自动向new_cust_customer_date_path发起请求,并将响应内容填充到当前Turbo Frame中。如果只需要表单部分,建议用方式一更直接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 22:57:19