-1

「NoMethodError」が発生しています この問題の解決方法を提案してください

どうもありがとう、

NoMethodError in Admin#index 
.....
.....
undefined method `name' for nil:NilClass
.....
.....
Extracted source (around line #23): 

20:     <% for reservation in reservations %>
21:         <tr class="<%= cycle('list_line_odd', 'list_line_even') %> ">
22:         <td class="list_description"> 
23:             <dt><%= link_to reservation.machine.name, reservation.machine %></dt>
24:         </td>
25:         <td> <%= reservation.startdate.strftime("%m/%d/%Y %I:%M %p")  %> </td>
26:         <td> <%= reservation.enddate.strftime("%m/%d/%Y %I:%M %p")  %> </td>
4

4 に答える 4

0

予約コントローラーで

def index
 @reservation = Reservation.all
end 

あなたの見解では

<%= form_for(@reservation) do |r|%>
 <% if r.machine %>
  <%= link_to r.machine.name, r.machine %>
 <% end %>
<%end%>
于 2012-10-26T12:15:24.027 に答える
0

これを試して

<% if reservation.machine.present?  %>
  <td class="list_description"> 
    <dt><%= link_to reservation.machine.name, reservation.machine %></dt>
  </td>
<% end %>
于 2012-10-26T06:54:18.233 に答える
0

が原因でエラーが発生しますreservation.machine.name。あなたの場合reservation.machine、1つ以上の予約が返され、その上でメソッドをnil呼び出しています。name

オブジェクトが nil を返すかどうかの前に、このようなエラー チェックを回避する最善の方法。

<td class="list_description"> 
  <dt>
    <% if reservation.machine %>
      <%= link_to reservation.machine.name, reservation.machine %>
    <% end %>
  </dt>
</td>
于 2012-10-26T07:15:30.670 に答える