如何显示对象的所有对象

时间:2014-05-05 14:01:25

标签: ruby-on-rails ruby

今天我一直在努力解决一个非常简单的问题。

我的系统中有一个名为Sensors的模型,这些传感器有_many:value_of_sensors

value_of_sensors就像每个传感器的历史记录一样,为了做到这一点,我在数据库中创建了一个名为sensor_id的列,它保存了传感器的id

我的问题是,每次我通过转到我的应用程序中的(“show”)选项(url更改为sensors / 8)来访问特定的传感器,这是id = 8的传感器,我怎么能修改我在value_of_sensor的控制器索引中的代码,以便将传感器的id = 8从URL中取出,并显示id = 8的传感器的所有历史记录(value_of_sensor属性)。

目前我已尝试在value_of_sensor

的控制器索引中使用此代码
@value_of_sensors = ValueOfSensor.where(:sensor_id => current_sensor.id)

但似乎它无法正常工作

你能帮忙吗

提前致谢!

1 个答案:

答案 0 :(得分:0)

根据您的澄清,您可能意味着这样做:

@value_of_sensors = ValueOfSensor.where(:sensor_id => params[:id])

我不清楚current_sensor来自哪里,但是根据您所说的内容,因为您指出这是show路由的Sensor页面,当前的ID选择的传感器应该在参数图中给出,只需:id

正如@taro所说,更简单的方法是利用has_many关系。因此,不是仅抓取ValueOfSensor个对象,而是获取Sensor对象,并调用.value_of_sensors方法。例如:

@sensor = Sensor.find(params[:id])
@value_of_sensors = @sensor.value_of_sensors