今天我一直在努力解决一个非常简单的问题。
我的系统中有一个名为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)
但似乎它无法正常工作
你能帮忙吗
提前致谢!
答案 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