1. ホーム
  2. ruby-on-rails

[解決済み] nil:NilClass のための未定義メソッド `each' for order method

2022-03-02 20:53:42

質問

私のコードを実行しようとすると、このエラーが表示されます。調べたところ、私の問題はコントローラかビューのどちらかにあるようです。

これは私のコントローラです。

 class AppointmentsController < ApplicationController
  def index
    @appointments = Appointment.order('appt_time ASC')
    @appointment = Appointment.new
   end
  end

これは私の見解です

%h1 React Calendar

%h2 Appointments

%h3 Make a new appointment

= form_for @appointment do |f|
    = f.text_field :title
    = f.text_field :appt_time
    = f.submit 'Make appointment'

= @appointmets.each do |a|
    %h3 = a.title
    %p = a.appt_time

実行中

<ブロッククオート

Rails 5.1.3 ルビー 2.4.1

解決方法は?

Undefined method <method name> for nil:NilClass はそのメソッドを呼び出していることを意味し、この場合は .each 存在しないもの(Nil)に対してです。

この場合、ビューにタイプミスがあるため、変数が思ったように存在しないだけです。

= @appointmets.each do |a|
%h3 = a.title
%p = a.appt_time

である必要があります。

= @appointments.each do |a|   <--- you missed the "n"
%h3 = a.title
%p = a.appt_time