[英]Rails: Selecting from multiple tables using .join()
插件型號:
class Plugin < ActiveRecord::Base
belongs_to :report
has_many :vulns
end
Vulns模型:
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
這是正確的查詢,但不會從vulns表中選擇內容。 我知道這是正確的查詢,因為我在phpmyadmin中進行了嘗試,並且它也返回了vulns表上的數據。 當我在rails(使用<%= debug(@data) %>
)中進行操作時,它僅顯示插件表中的內容。
如何使它也從vulns表中選擇所有內容? (每個插件都有多個漏洞)
顯然,您不能有一個名稱為“ type”的列。
如果有人遇到類似問題,請重命名“類型”列。 我產生了一個新的遷移:
rails g migration RenameColumnOnVulnsTable
然后添加以下內容:
def change
rename_column :vulns, :type, :vulnerability_type
end
該查詢現在工作正常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.