gpt4 book ai didi

mysql - Rails : Selecting from multiple tables using . 加入()

转载 作者:行者123 更新时间:2023-11-30 01:29:54 25 4
gpt4 key购买 nike

插件型号:

class Plugin < ActiveRecord::Base
belongs_to :report
has_many :vulns
end

漏洞模型:

class Vuln < ActiveRecord::Base
belongs_to :plugins
end

我正在 Rails 中执行以下操作:

#using * for now to select everything    
@data = Plugin.select("*").joins(:vulns).where('plugins.id'=> plugin.plugin_id)

在终端中执行以下查询:

SELECT * FROM `plugins` INNER JOIN `vulns` ON `vulns`.`plugin_id` = `plugins`.`id` WHERE `plugins`.`id` = 186

这是正确的查询,但它没有从漏洞表中选择内容。我知道这是正确的查询,因为我在 phpmyadmin 中尝试过它,它也返回了 vulns 表上的数据。当我在 Rails 中执行此操作(使用 <%= debug(@data) %> )时,它仅显示插件表中的内容。

如何让它也从漏洞表中选择所有内容? (每个插件都有多个漏洞)

最佳答案

显然你不能有一个名为“type”的列。

如果有人遇到类似问题,请重命名名为“type”的列。我生成了一个新的迁移:

rails g migration RenameColumnOnVulnsTable

然后添加以下内容:

def change
rename_column :vulns, :type, :vulnerability_type
end

查询现在工作正常。

关于mysql - Rails : Selecting from multiple tables using . 加入(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17599552/

25 4 0