下面的代码显示DataModel表(数据库)中的parametersname。我还有一个表dataModelDevices,其中有parameter_name列。我也想在UI的同一行中显示parameter_name。如何在Rails中再加入一张桌子? 我已经尝试过下面的代码,但不能正常工作。
<% DataModel.preload(:devices,:revision).where(device: true).where("parametersname NOT LIKE '%.'").where("parametersname LIKE '%{i}%'").order(:id).each do |parameter| %>
<tr onclick="javascript:showRowDeviceTest(this);">
<% DataModelDevices.all.each do |parameterhard| %>
<td style="word-break:break-all;">
<%= parameter.parametersname%>
<%= parameterhard.parameter_name%>
</td>
<% end %>
<% end %>
实际工作代码
<% DataModel.preload(:devices,:revision).where(device: true).where("parametersname NOT LIKE '%.'").where("parametersname LIKE '%{i}%'").order(:id).each do |parameter| %>
<tr onclick="javascript:showRowDeviceTest(this);">
<td style="word-break:break-all;">
<%= parameter.parametersname%>
</td>
</tr>
<% end %>
答案 0 :(得分:0)
您应该在DataModel中的模型中添加关联:
has_many :data_model_devices
在DataModelDevice中:
belongs_to :data_model
您可以根据需要加入以下代码:
DataModel.joins(:data_model_devices).
select('data_model_devices.parameter_name, data_models.*').load