- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在尝试为网站构建购物车。我有购物车,所以你可以添加到购物车。我遇到的问题是当我尝试结帐购物车中的商品并尝试提交订单时。我收到以下错误:
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/
我一直在我的程序中随机出现 ActiveRecord::MissingAttributeError 错误。我有乘客(30 个实例)使用 nginx 运行。我在开发中没有这个问题。当我删除缓存资金时,它
我正在尝试实现一个“评论”功能,作为我正在构建的项目的任务的一部分。 在类(class)的早期,我们创建了一个评论表并让 Faker gem 生成虚假评论。 我的指令如下: Comments must
我正在尝试在用户模型和出勤模型之间创建关联,其中 attendee_id 引用用户。该关联是用户和音乐会之间的多对多关系。连接表 attendances 有两个字段:attendee 和 :conce
部署我的应用程序时,我的评论有问题。在本地一切正常。来自 heroku 的日志说: ActiveModel::MissingAttributeError (can't write unknown at
我正在开发一个测试应用程序来学习 Rails。在玩关联时,我收到 ActiveModel::MissingAttributeError: can't write unknown attribute '
我有一个 Rails 3.0.9 应用程序,一旦部署,就会遇到一堆 ActiveModel::MissingAttributeErrors,这些错误会突然出现并导致 500 秒。错误相当随机地发生,有
我想创建一个新的“AnswerStat”对象并将其保存在数据库中。我得到: can't write unknown attribute `answer_stat_id' app/models/answ
在我的 Firm 类中我有 acts_as_mappable :lat_column_name => :latitude, :lng_column_name => :
我正在使用 rails3-jquery-autocomplete gem 来自动完成用户名,搜索属性是 lastname 但我想显示全名作为显示值。这是我的 Controller 中的内容 autoc
我有以下型号: class Ad < ActiveRecord::Base belongs_to :page has_one :image has_one :logo end class
我正在尝试为网站构建购物车。我有购物车,所以你可以添加到购物车。我遇到的问题是当我尝试结帐购物车中的商品并尝试提交订单时。我收到以下错误: ActiveModel::MissingAttributeE
我正在尝试添加 Screenshot 的模型:belongs_to 与 SpreeProduct 的关联,它具有:has_many 与之关联。 当我运行这个时: product = Spree::Pr
我是一名优秀的程序员,十分优秀!