gpt4 book ai didi

ruby-on-rails - Rails - 存储值 - 通过关联

转载 作者:行者123 更新时间:2023-12-02 01:48:39 25 4
gpt4 key购买 nike

我想使用订单表单将下表中的值存储在 :quantity 中,但我不确定如何针对此特定表执行此操作。

 create_table "order_items", force: true do |t|
t.integer "item_id"
t.integer "order_id"
t.datetime "created_at"
t.datetime "updated_at"
t.integer "quantity"
t.decimal "price"
end

关系如下

订单模型

has_many :order_items
has_many :items, :through => :order_items

项目模型

has_many :order_items
has_many :orders, :through => :order_items

OrderItem 模型

belongs_to :item
belongs_to :order

最佳答案

您需要使用 accepts_nested_attributes_for然后使用 nested form在 Rails 中:

#app/models/order.rb
Class Order < ActiveRecord::Base
has_many :order_items
has_many :items, :through => :order_items

accepts_nested_attributes_for :order_items
end

这意味着您将必须构建 order_item 对象发送数据之前,以便您的表单可以使用f .fields_for 方法来处理关联数据,如下所示:

#app/controllers/orders_controller.rb
Class OrdersController < ApplicationController
def new
@order = Order.new
@order.order_items.build
end

def create
@order = Order.new(order_params)
@order.save
end

private

def order_params
params.require(:order).permit(:order, :params, order_items_attributes: [:quantity])
end

end

#app/views/orders/new.html.erb
<%= form_for @order do |f| %>
<%= f.fields_for :order_items do |o| %>
<%= o.text_field :quantity %>
<% end %>
<% end %>

关于ruby-on-rails - Rails - 存储值 - 通过关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24073652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com