activerecord关系模型名称显示两次

时间:2015-12-23 21:03:10

标签: ruby-on-rails activerecord

下午好,

首先发布在这里。我已经对这个错误进行了一些研究,没有发现任何对我有用的东西,因为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

任何帮助将不胜感激。红宝石和铁轨的新手,请原谅我缺乏知识。

干杯

1 个答案:

答案 0 :(得分:0)

已编辑

嘿伙计们!感谢快速回复,我弄清楚问题是什么。在项目的早期,我曾试图在模型中实现命名空间,这就是导致问题的原因。一旦我直接在app / models dir下移动所有模型并重新启动控制台,所有工作都是100%。所以我猜我还不了解rails如何处理命名空间,但我会在后期尝试命名空间。现在我只需要一个快速的原型来运行一些客户端的演示。

再次感谢快速回复。