在我看来,错误消息NoMethodError in Circuit#update
undefined method 'network_address' for nil:NilClass
与此行相关:
<td><%= logical_interface.subnet.network_address %></td>
早些时候一切都运行良好,现在当我重新启动本地服务器时,我设法以某种方式破坏了它。
更新.rhtml
<table id="logical_interfaces">
<% @logical_interfaces.each do |logical_interface| %>
<tr id="logical_interface_<%= logical_interface.id %>">
<td><%= logical_interface.description %></td>
<td><%= logical_interface.subnet.network_address %></td>
<td><%= logical_interface.bandwidth %></td>
</td>
</tr>
<% end %>
</table>
逻辑接口.rb
belongs_to :subnet
belongs_to :circuit
子网.rb
belongs_to :logical_interface
belongs_to :circuit
电路.rb
has_many :subnets
has_many :logical_interfaces
电路控制器.rb
CRUD 正在另一个模型的控制器内部完成,因为这是其他一切运行的主要对象。
def update
....
if params[:id]
@circuit = Circuit.find(params[:id])
end
@logical_interfaces = LogicalInterface.find_all_by_circuit_id(@circuit.id)
....
end
与错误一样,我敢打赌这是很愚蠢的事情,但我真的无法为自己解决问题,因此非常感谢任何答案。我感觉这与模型之间定义的关系有关,但我可能是错的。