插件型号:
class Plugin < ActiveRecord::Base
has_many :vulns
end
漏洞模型:
class Vuln < ActiveRecord::Base
belongs_to :plugin
end
插件表:
create_table "plugins", force: true do |t|
t.string "name"
end
漏洞表:
create_table "vulns", force: true do |t|
t.string "title"
t.integer "plugin_id"
t.string "vulnerability_type"
t.string "fixed_in"
end
当我使用 rails 控制台rails c
并输入Plugin.select("*").joins(:vulns)
时,它只会从插件表中获取数据
#<ActiveRecord::Relation [#<Plugin id: 1, name: "xxx">, #<Plugin id: 2, name: "xxx">
这是查询:
SELECT * FROM `plugins` INNER JOIN `vulns` ON `vulns`.`plugin_id` = `plugins`.`id`
但是,当我在 mysql 中执行此查询时,它会显示来自 vulns 和插件的所有内容,就像它应该显示的那样。对于每个插件,数据库中至少有一个或多个漏洞。
所以这里的问题是:我如何让它从两个表(插件和 vulns)中获取内容,而不仅仅是插件?