0

エラーメッセージは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

バグによくあることですが、これはばかげたことだと思いますが、本当に自分で解決できないので、回答をいただければ幸いです。モデル間で定義された関係に関係しているように感じますが、間違っている可能性があります。

4

1 に答える 1