使用DataMapper获取记录

发布于 2024-10-28 19:18:10 字数 746 浏览 0 评论 0原文

刚刚第一次使用DataMapper。我已经在 MySQL 数据库中设置了一个表并正在连接到该数据库。我定义了以下映射:

class Track_Scan
    include DataMapper::Resource

    property :item_id,                  Integer
    property :current_station_id,       Integer
    property :next_station_id,          Integer
end

它返回正确的项目数 - 例如,如果数据库中有给定 id 的五个记录,则 Track_Scan.all(:item_id => my_id) 将产生一组五个对象 - 但是当我调用每个对象时,我会看到同一个对象五次:

#<Track_Scan:0x7fcbcfca59c0>
#<Track_Scan:0x7fcbcfca59c0>
#<Track_Scan:0x7fcbcfca59c0>
#<Track_Scan:0x7fcbcfca59c0>
#<Track_Scan:0x7fcbcfca59c0>

而不是在 current_station_id中具有不同值的五个不同对象next_station_id 正如它们在表中实际所做的那样。

有什么帮助吗?

Just using DataMapper for the first time. I have set up a table in a MySQL database and am connecting to that. I have defined the following mapping:

class Track_Scan
    include DataMapper::Resource

    property :item_id,                  Integer
    property :current_station_id,       Integer
    property :next_station_id,          Integer
end

It returns the right number of items - e.g. if there are five records in the DB for a given id, Track_Scan.all(:item_id => my_id) will yield a group of five objects - but when I call each on this, I see the same object five times:

#<Track_Scan:0x7fcbcfca59c0>
#<Track_Scan:0x7fcbcfca59c0>
#<Track_Scan:0x7fcbcfca59c0>
#<Track_Scan:0x7fcbcfca59c0>
#<Track_Scan:0x7fcbcfca59c0>

rather than five different objects with different values in their current_station_id and next_station_id as they actually do in the table.

Any help?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

爱她像谁 2024-11-04 19:18:10

您的模型缺少一把钥匙。如果您想使用复合键,您需要执行以下操作:

class Track_Scan
  include DataMapper::Resource

  property :item_id,            Integer, :key => true
  property :current_station_id, Integer, :key => true
  property :next_station_id,    Integer, :key => true
end

此外,在需要所有模型之后,您需要致电:

DataMapper.finalize

希望这会有所帮助

Your model is missing a key. If you want to use a composite key you need to do this:

class Track_Scan
  include DataMapper::Resource

  property :item_id,            Integer, :key => true
  property :current_station_id, Integer, :key => true
  property :next_station_id,    Integer, :key => true
end

Also, after all your models are required you need to call:

DataMapper.finalize

Hope this helps

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文