【问题标题】:creating Models with sqlite3 + datamapper + ruby使用 sqlite3 + datamapper + ruby​​ 创建模型
【发布时间】:2011-04-22 21:01:10
【问题描述】:

您如何构建具有以下关联的模型(我尝试但无法使其工作):

每个订单都有:一个客户、一个销售代表、许多订单行,每个订单都有一个项目

我试过了:当我这样做时:Customer.all(Customer.orders.order_lines.item.sku.like => "%BLUE%") 输出是:[]
而不是:'[#]'

当我删除 SalesRep 时:它起作用了。

客户
有 n, :orders
有 n, :items, :through => :order

销售代表
有 n, :orders
有 n, :items, :through => :order

订购
归属于:客户
属于_to:技术员
有 n, :order_lines
有 n, :items, :through => :order_line

订单行
属于_to :order
属于_to :item

项目
有 n, :order_lines

【问题讨论】:

  • 是否通过DataMapper.finalize?

标签: ruby database sqlite relational-database datamapper


【解决方案1】:

由于输出不是错误,可能是您的数据库中实际上没有数据。

使用irb -r your_models_file.rb 尝试以下操作: - c = Customer.create(:name => "Dan Kubb")

  • o = Order.new(:customer => c) # Create and add technician unless it's :required => false
  • i = Item.create(:sku => "BLUE") # Plus any other required fields
  • ol = OrderLine.create(:order => o, :item => i)
  • o.order_lines << ol; o.save

这应该会创建为此工作所需的记录。试试这个,如果不起作用,请发布您的整个模型文件,以便我们更好地了解发生了什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-21
    • 1970-01-01
    • 2012-01-20
    • 2023-03-10
    相关资源
    最近更新 更多