Ruby on rails Rails:为什么会出现错误;未定义的方法`model#u name'&引用;当尝试使用嵌套属性时?

Ruby on rails Rails:为什么会出现错误;未定义的方法`model#u name'&引用;当尝试使用嵌套属性时?,ruby-on-rails,simple-form,nested-attributes,Ruby On Rails,Simple Form,Nested Attributes,我有一个模型,它接受它所属的另一个模型的嵌套属性 类顺序

我有一个模型,它接受它所属的另一个模型的嵌套属性

类顺序
我的控制器如下所示:

def更新
@order=order.find(参数[:id])
@收集地址=@order.collection\u地址| |@order.build\u收集地址
if@order.update(强参数)
flash[:success]=“订单已更新”
重定向到订单路径(@order)
其他的
flash.now[:warning]=@order.errors.full\u消息
渲染“编辑”
结束
结束
我的编辑表单如下所示:

编辑顺序
但是,当我尝试加载页面时,Rails失败并出现以下错误:

Completed 500 Internal Server Error in 128ms (ActiveRecord: 1.9ms | Allocations: 7986)

ActionView::Template::Error (undefined method `model_name' for nil:NilClass):
    1: <h1>Edit order</h1>
    2: <%= simple_form_for @order, url: order_path do |form| %>
    3:     <%= form.simple_fields_for @collection_address do |address_form| %>
    4:       <%= address_form.input :address1 %>
    5:       <%= address_form.input :address2 %>
    6:       <%= address_form.input :city %>

actionview (6.0.0.rc2) lib/action_view/model_naming.rb:11:in `model_name_from_record_or_class'
actionview (6.0.0.rc2) lib/action_view/helpers/form_helper.rb:2170:in `fields_for'
simple_form (4.1.0) lib/simple_form/action_view_extensions/builder.rb:28:in `simple_fields_for'
...
在128ms内完成500个内部服务器错误(ActiveRecord:1.9ms |分配:7986)
ActionView::Template::Error(未定义nil:NilClass的“model_name”方法):
1:编辑顺序
2: 
三:
4:       
5:       
6:       
actionview(6.0.0.rc2)lib/action\u view/model\u naming.rb:11:in'model\u name\u from\u record\u or\u class'
actionview(6.0.0.rc2)lib/action\u view/helpers/form\u helper.rb:2170:in'fields\u for'
simple_form(4.1.0)lib/simple_form/action_view_extensions/builder.rb:28:in'simple_fields_for'
...
嵌套字段肯定会导致这种情况,因为当我删除嵌套表单时,页面会正确加载。我所能想到的是,这与关联的类名与其关联名不同有关(即,关联是
:collection\u address
,但其类名是
address


从现在起,我完全被困住了。有人知道我的表单无法加载的原因吗?我错过了什么明显的东西吗?我需要多走一步吗?我如何才能让表单使用
集合地址
的嵌套属性?

我需要在编辑操作中定义
@collection\u address

您提供了更新操作,但我怀疑
@collection\u address
没有在编辑操作中定义您是对的。我累了。