エラーメッセージはNoMethodError in Circuit#update
undefined method 'network_address' for nil:NilClass
、私の見解では次の行に関連しています。
<td><%= logical_interface.subnet.network_address %></td>
以前はすべてが完全に機能していましたが、ローカルサーバーを再起動したときに何とかそれを壊すことができました.
update.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>
logical_interface.rb
belongs_to :subnet
belongs_to :circuit
サブネット.rb
belongs_to :logical_interface
belongs_to :circuit
circuit.rb
has_many :subnets
has_many :logical_interfaces
circuit_controller.rb
CRUD は別のモデルのコントローラー内で実行されています。これは、他のすべてが実行されるメイン オブジェクトであるためです。
def update
....
if params[:id]
@circuit = Circuit.find(params[:id])
end
@logical_interfaces = LogicalInterface.find_all_by_circuit_id(@circuit.id)
....
end
バグによくあることですが、これはばかげたことだと思いますが、本当に自分で解決できないので、回答をいただければ幸いです。モデル間で定義された関係に関係しているように感じますが、間違っている可能性があります。