gpt4 book ai didi

ruby - OrdersController 中的 Rails 4 ActiveModel::MissingAttributeError#create

转载 作者:数据小太阳 更新时间:2023-10-29 08:48:02 27 4
gpt4 key购买 nike

我正在尝试为网站构建购物车。我有购物车,所以你可以添加到购物车。我遇到的问题是当我尝试结帐购物车中的商品并尝试提交订单时。我收到以下错误:

ActiveModel::MissingAttributeError in OrdersController#create

连同

can't write unknown attribute `order_id'

问题是在我的 orders_controller.rb 文件中突出显示这段代码

respond_to do |format| if @order.save Cart.destroy(session[:cart_id]) session[:cart_id] = nil

我似乎无法修复此错误。

下面是我的 orders_controller.rb 文件中的创建方法

def create
@order = Order.new(order_params)
@order.add_line_items_from_cart(@cart)

respond_to do |format|
if @order.save
Cart.destroy(session[:cart_id])
session[:cart_id] = nil

format.html { redirect_to store_url,
notice: 'Thank you for your order.' }
format.json { render action: 'show', status: :created, location: @order }
else
format.html { render action: 'new' }
format.json { render json: @order.errors, status: :unprocessable_entity }
end
end
end

我的迁移文件

class AddOrderToLineItem < ActiveRecord::Migration
def change
add_column :line_items, :order, :reference
end
end

我的订单.rb模型

class Order < ActiveRecord::Base
has_many :line_items, dependent: :destroy
validates :name, :address, :email, presence: true
PAYMENT_TYPES = [ "Check", "Credit card", "Purchase order" ]
validates :pay_type, inclusion: PAYMENT_TYPES

def add_line_items_from_cart(cart)
cart.line_items.each do |item|
item.cart_id = nil
line_items << item
end
end
end

migration order table
class CreateOrders < ActiveRecord::Migration
def change
create_table :orders do |t|
t.string :name
t.text :address
t.string :email
t.string :pay_type

t.timestamps
end
end
end

最佳答案

好的,我想我明白问题所在了。您对行项目中的订单的迁移可能没有创建您期望的 order_id 列,它可能创建了 orders 列或其他内容。

验证数据库中是否属于这种情况。如果是这样,请撤消之前的迁移并改为尝试此操作:

class AddOrderToLineItem < ActiveRecord::Migration
def change
add_column :line_items, :order_id, :int
end
end

如果没有,请回复此答案。

关于ruby - OrdersController 中的 Rails 4 ActiveModel::MissingAttributeError#create,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21446147/

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