2011-11-12 24 views
2
create table foo (id, name) 
create table foo_config (id, foo_id, key, value) 

insert into foo (1, 'name1') 
insert into foo (2, 'name2') 
insert into foo (3, 'name3') 

insert into foo_config (1, 1, 'key1', 'val1') 
insert into foo_config (2, 1, 'key2', 'val2') 
insert into foo_config (3, 1, 'key3', 'val3') 
insert into foo_config (4, 2, 'key1', 'val1') 
insert into foo_config (5, 3, 'key2', 'val2') 

基于子表中的某个值,我如何查询所有foo替换其key1 = 'val1',在我们的例子FOO:1 和Foo:2将在这里列出。我应该如何为这个模型/查询, 赞赏任何相同的指针。你如何查询中使用的DataMapper

回答

0

首先,你必须建立模型,并建立了关联:

class Foo < ActiveRecord::Base 
    has_many :foo_configs, :dependent => :destroy 
end 

class FooConfig < ActiveRecord::Base 
    belongs_to :foo 
end 

这里是你将如何设置查询:

Foo.where(:foo_configs => {:key => 'key1', :value => 'value1'}).includes(:foo_configs)