Rails控制器将一个var与另一个var匹配

时间:2016-01-07 15:59:29

标签: ruby-on-rails

我有一张表里面有很多数据

我想做这样的事情。获取列中与其他表中另一列内的其他内容匹配的所有内容。

所以@car = Cardata.find_by(@carmake)

因此,@carmake将是沃尔沃,以单独的形式输入并存储在表格中。

在表格Cardata中,有一张大量的列表(大约4万条记录),包括从福特到雷诺到沃尔沃的不同车型。

问题是。 @car会显示所有包含单词volvo的记录吗?或者这是错误的做法?或者我需要按列标记吗?

萨姆

3 个答案:

答案 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.