Ruby on rails 在一个控制器中创建和更新两个模型

Ruby on rails 在一个控制器中创建和更新两个模型,ruby-on-rails,model,controller,Ruby On Rails,Model,Controller,我想创建一个模型,同时更新另一个模型的一部分 我有两种型号订单和清单订单属于:列表且列表有多个:订单 当用户填写订单表单时,将创建订单。在URL中有一个名为乘客的参数,该参数通过GET方法发送(URL如下所示:http://localhost:3000/listings/3/orders/new?passengers=2)。有了这个参数,我只想更新列表模型的一列 我尝试将accepts\u nested\u attributes\u添加到Order模型中,并更改orders\u控制器 编辑-问题

我想创建一个模型,同时更新另一个模型的一部分

我有两种型号
订单
清单
<代码>订单属于:列表且
列表有多个:订单

当用户填写订单表单时,将创建订单。在URL中有一个名为
乘客
的参数,该参数通过
GET
方法发送(URL如下所示:
http://localhost:3000/listings/3/orders/new?passengers=2
)。有了这个参数,我只想更新列表模型的一列

我尝试将
accepts\u nested\u attributes\u添加到
Order
模型中,并更改
orders\u控制器

编辑-问题已解决 解决方案:订单和控制器:

@order = Order.new(order_params)
@listing = Listing.find(params[:listing_id])
@listing.update_attribute(:passengers, params[:passengers])

请尝试使用
@order.listing.passengers=params[:passengers]
,而不是
@order.listing.update_属性(:passengers,params[:passengers])
,您可以向我们展示您尝试的代码吗?具体来说,您尝试的
接受
的嵌套属性。此外,您还可以将
params[:passengers]
值保存在
orders#new
中的实例变量中,然后将该值作为表单中的隐藏字段传递给create操作,然后手动更新
列表
对象。不过,这肯定是不太受欢迎的方式。在任何情况下:在
订单#新建
@passengers=params[:passengers]
。然后,在您的新订单表单中:
hidden\u field\u tag:patiences,@patiences
,它将为您提供
orders中的
params[:patiences]
,创建
,以便您可以手动更新列表。嘿,感谢您的帮助。问题是,当我调用orders#create时,我的参数中有params[:passengers],但我不知道如何在我的列表模型中更新列“passengers”。。。我在我的订单中尝试了类似的方法#create:@order=order.new(order_params),然后@order.listing.passengers=params[:passengers],但在我的日志中,SQL插入仅在我的订单模型中执行。。。