使用DataMapper通过外键获取值

时间:2011-04-05 18:54:25

标签: ruby foreign-keys datamapper

我有两个表,nodesterms

nodes中的相关字段为:nid(主键)和value
terms中,它们是:valuetidnid,其中valuetid是主键,{{1}是引用nid的外键。

我想将记录添加到nodes.nid。我有termstid以及nid我要从相应的value中提取 - 例如在node中查找给定value的{​​{1}},然后将其nid添加到node

在SQL中执行此操作的方法可能是:

value

有人可以帮我用DataMapper做这件事吗?

terms

如果有人能指出我对DataMapper的一个很好的教程,我会很感激。我一直在使用他们的在线文档,但我发现我发现自己的情况很少被覆盖。

1 个答案:

答案 0 :(得分:1)

根据您的描述,您正在寻找的模型应该设置如下:

class Node
  include DataMapper::Resource

  property :nid,    Serial
  property :value,  Integer
end

class Term
  include DataMapper::Resource

  property :tid,   Integer, :key => true
  property :value, Integer, :key => true

  belongs_to :node, :child_key => :nid
end

你可以使用这些模型:

# create a node
node = Node.create(:value => 123)

# create a term and associate it with the node
term = Term.create(:tid => 321, :node => node, :value => node.value)