我正在尝试使用主机记录(id,hostname,netid)建模表,并使用路由连接表来表示两条路由之间的连接(id,src_id,src_ip,dst_id,dst_ip)。
当我尝试检索主机的所有路由记录时:包括主机表(以便我可以获取主机名),它只检索路由记录。我做错了什么?
class Host < ActiveRecord::Base
has_many :routes
end
class Route < ActiveRecord::Base
belongs_to :srchost, :class_name => 'Host', :foreign_key => 'src_id'
belongs_to :dsthost, :class_name => 'Host', :foreign_key => 'dst_id'
end
x = Route.where(:src_id => host).includes(:srchost, :dsthost)
puts x.inspect
答案 0 :(得分:1)
使用自定义sql因为包含不返回关联模型。 Route.find_by_sql('select hosts。* ...')或者你可以使用insins insted和select('hosts。*')。例如:
User.joins(:posts).select('posts.title')