我有一张表里面有很多数据
我想做这样的事情。获取列中与其他表中另一列内的其他内容匹配的所有内容。
所以@car = Cardata.find_by(@carmake)
因此,@carmake
将是沃尔沃,以单独的形式输入并存储在表格中。
在表格Cardata
中,有一张大量的列表(大约4万条记录),包括从福特到雷诺到沃尔沃的不同车型。
问题是。 @car
会显示所有包含单词volvo的记录吗?或者这是错误的做法?或者我需要按列标记吗?
萨姆
答案 0 :(得分:0)
获得所有这些:
@cars = Cardata.where(carmake: @carmake).all
获得第一个:
@car = Cardata.where(carmake: @carmake).first
答案 1 :(得分:0)
假设您在make
的汽车数据中有一列,我想您应该做以下事情:
@cars = Cardata.where(make: @carmake).all
答案 2 :(得分:0)
@car = Cardata.find_by_attribute_name(@carmake) # This will return the first car that matches @carmake.
假设attribute_name是model。
你会这样做:
Cardata.find_by_model(@carmake)
如果你想要所有匹配@carmake的汽车。
你需要这样做:
Cardata.where(model: @carmake) # this will return an array of all cars with model @carmake.