Sql Rails将两个关系合并为一个结果
我有一张狗和主人的桌子 我想得到一个结果,结果对象包含dog和owner字段,这样我以后就可以使用这个对象,转换成json等,而无需再次查询数据库或点击缓存 所以如果我有狗,柯利牧羊犬,每只狗都有一个id,品种,年龄和主人的id,每个主人都有id,名字- 我想用狗的id、品种和主人的名字创建一个新对象 Dog.joins:owner.collie将返回一个Dog对象列表,我想做Dog.owner,它将命中缓存。如果我将其转换为json,则缺少所有者名称 上面说我可以返回带有特定字段的模型实例 如果不定义这样的对象,我如何返回一个包含3个字段(2个是dog字段,1个是owner字段)的对象,但是让Rails来完成它 狗。包括:主人 但是,如果您只需要名称,则可以将其委托给所有者Sql Rails将两个关系合并为一个结果,sql,ruby-on-rails,activerecord,join,Sql,Ruby On Rails,Activerecord,Join,我有一张狗和主人的桌子 我想得到一个结果,结果对象包含dog和owner字段,这样我以后就可以使用这个对象,转换成json等,而无需再次查询数据库或点击缓存 所以如果我有狗,柯利牧羊犬,每只狗都有一个id,品种,年龄和主人的id,每个主人都有id,名字- 我想用狗的id、品种和主人的名字创建一个新对象 Dog.joins:owner.collie将返回一个Dog对象列表,我想做Dog.owner,它将命中缓存。如果我将其转换为json,则缺少所有者名称 上面说我可以返回带有特定字段的模型实例 如
Class Dog < ActiveRecord::Base
delegate :name, to: :owner, prefix: true, allow_nil: true
end
那怎么办
class Dog
belongs_to :owner
end
dogs = Dog.all
dogs.to_json(:include => :owner)
是的,但是在那之后我想以json的形式返回结果,所以我需要在相同的hash/objectOk中的所有内容,然后要么按照bekicot说的做,要么覆盖to_json方法查看此链接以获得所有可能的选项请发布更多代码示例和一些psuedo代码,以了解您想要做什么。你的问题不清楚。我会尽力解释,我知道rails可以做到这一点,我只是不知道如何称呼它
class Dog
belongs_to :owner
end
dogs = Dog.all
dogs.to_json(:include => :owner)