我有两个看起来像这样的模型
class Stage
include DataMapper::Resource
property :id, Serial
belongs_to :staff
end
class Staff
include DataMapper::Resource
property :id, String, :key => true
property :full_name, String
property :email, String
has n, :stages
end
我正在尝试查找分配了特定工作人员的所有阶段。我试过了@stages = Stage.all(Stage.Staff => 'TM')
我做错了什么?
答案 0 :(得分:2)
实际上你可以在datamapper中使用字符串键,如下所示:
Stage.all('staff.id' => 'TM')
或
Stage.all('staff.name.like' => 'Ted%')
您也可以混合搭配该模型中的属性:
Stage.all('staff.name.like' => 'Ted%', 'id.gte' => 5 )
这将使所有Stages属于名称以'Ted'开头并且id大于或等于5的人。
答案 1 :(得分:1)
试试这个,因为我使用了DataMapper已经有一段时间了。
Stage.all(Stage.staff.id => 'TM')
这假设'TM'实际上是您用于工作人员身份的值。
答案 2 :(得分:0)
我会做
@stages = Stage.all(:staff => 'TM')