在select中使用相同字段名的Rails find_by_sql

时间:2014-03-11 12:55:31

标签: sql ruby-on-rails

我想在Rails中运行下一个代码:

boatData = Boat.find_by_sql(["SELECT bm.name as name1, bt.name as name2 
                                  FROM boat_models bm, boat_types bt, boats b
                                  WHERE b.id = ?
                                  AND bm.id = b.boat_model_id
                                  AND bt.id = bm.boat_type_id", boatId]).first
    puts "boatData=" + boatData.inspect
    description = "Booking: " + boatData[:name1] + "(" + boatData[:name2].to_s + ")"

唯一的问题是select中的字段具有相同的名称。当我尝试添加" as"结果不对。

更新

这就是puts" boatData ="的输出。 + boatData.inspect

boatData=#<BoatModel id: nil, name: "Velero">

1 个答案:

答案 0 :(得分:1)

我可能非常错误,但看起来您只想选择一个Boat,然后获取该船的型号和类型名称。

如果我正确理解您的数据模型,您可以使用:

boat = Boat.find(boatId)
modelName = boat.boat_model.name
typeName = boat.boat_model.boat_type.name