Ruby on rails Rails通过查找查找查找sql不工作

Ruby on rails Rails通过查找查找查找sql不工作,ruby-on-rails,Ruby On Rails,我正在尝试使用sql Rails方法执行find_by_,但它不起作用 查询: @boats = Boat.find_by_sql(["SELECT * FROM boats b, ports p WHERE p.name = ? AND b.port_id = p.id", port]) puts @

我正在尝试使用sql Rails方法执行find_by_,但它不起作用

查询:

@boats = Boat.find_by_sql(["SELECT * 
                                FROM boats b, ports p
                                WHERE p.name = ? 
                                AND b.port_id = p.id", port])
puts @boats.inspect

查询返回两个元素,但它是同一个元素两次[id=1和id=1]。如果在数据库中运行查询,则会得到两个不同的结果[id=1和id=2]

您似乎选择了boats表和ports表的所有列,以便创建一组Boat对象。也许你的意思是选择b.*?

“我得到了两个不同的结果[id=1和id=1]”-输入错误?是的,Chowlett。很抱歉在rails中,我两次得到相同的结果。在mysql中,我得到两个不同的ID,这是正确的。为什么在这里使用
find\u by\u sql
?这应该是船只和港口之间的关系!这只是一个简单的例子。查询将相当复杂。。。对于复杂的查询,我读到了建议使用这种方法的文章。为了创建一组Boat对象,您似乎选择了boats表和ports表的所有列。也许你的意思是选择b*?