下午好,
首先发布在这里。我已经对这个错误进行了一些研究,没有发现任何对我有用的东西,因为stackoverflow社区是我找到答案的第一位。我想为什么不在这里问。
我创建了一个新的rails应用程序,并创建了order和order_item模型之间的关系。
应用程序/模型/ order.rb
class Order < ActiveRecord::Base
belongs_to :customer, foreign_key: 'customer_id'
belongs_to :shop
has_many :order_items, dependent: :destroy
end
应用程序/模型/ order_item.rb
class OrderItem < ActiveRecord::Base
belongs_to :order
end
客户和订单之间的关系正在发挥作用,因为我已经创建了两者的记录。 例如
Customer.create(:customer_attributes).orders.create
但是当我尝试访问或创建订单商品时
Customer.first.orders.first.order_items.first || Customer.first.orders.first.order_items.create
我收到以下错误
ActiveRecord :: StatementInvalid:找不到表&#39; order_order_items&#39;
我的问题是,为什么要查找带有前缀两次的表名?
下面的是我的两个模型的迁移文件
分贝/迁移/订单
class CreateOrders < ActiveRecord::Migration
def change
create_table :orders do |t|
t.integer :shop_id
t.integer :customer_id
t.string :status
t.string :additional_info
t.timestamps null: false
end
end
end
分贝/迁移/ ORDER_ITEMS
class CreateOrderItems < ActiveRecord::Migration
def change
create_table :order_items do |t|
t.integer :order_id
t.integer :menu_item_id
t.timestamps null: false
end
end
end
任何帮助将不胜感激。红宝石和铁轨的新手,请原谅我缺乏知识。
干杯
答案 0 :(得分:0)
已编辑
嘿伙计们!感谢快速回复,我弄清楚问题是什么。在项目的早期,我曾试图在模型中实现命名空间,这就是导致问题的原因。一旦我直接在app / models dir下移动所有模型并重新启动控制台,所有工作都是100%。所以我猜我还不了解rails如何处理命名空间,但我会在后期尝试命名空间。现在我只需要一个快速的原型来运行一些客户端的演示。再次感谢快速回复。