gpt4 book ai didi

sql - Rails - 不明确的列名 : id

转载 作者:行者123 更新时间:2023-12-02 05:43:35 26 4
gpt4 key购买 nike

我目前正在尝试使用以下代码播种一些测试数据:


# add vehicle
trim = Trim.where(:id => 1 + Random.rand(250)).first
model_year_array = trim.model_years.all(:select => :id).collect(&:id)
vehicle = Vehicle.create(trim_id: trim.id, model_year_id: model_year_array[Random.rand(model_year_array.length - 1)])

我认为这是不言自明的 - 本质上我想获得一组适用于所选装饰的 model_year id,随机选择一个,并将其 id 作为车辆的 model_year_id。

我遇到的问题是 trim.model_years.all(:select => :id).collect(&:id) 部分生成了一个 id 不明确的错误;错误如下:

SQLite3::SQLException: ambiguous column name: id: SELECT id FROM "model_years" INNER JOIN "model_year_trims" ON "model_years"."id" = "model_year_trims"."model_year_id" WHERE "model_year_trims"."trim_id" = 110

如何重新格式化我的代码,以便选择 id 得到 model_year 的 id,从而不会产生歧义?

最佳答案

执行连接时,您必须为存在于多个表中的列添加前缀,例如 id :

model_year_array = trim.model_years.all(:select => "model_years.id").collect(&:id)

应该做的事

关于sql - Rails - 不明确的列名 : id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11742655/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com