Я новичок в рельсах и бегущих рельсах 4 на Windows. Я имею дело с этой ошибкой в течение нескольких дней. Я думаю, что что-то может быть неправильно с предыдущими данными, которые я ввел, поэтому я попытался создать новое резервирование в консоли, чтобы увидеть, что происходит не так, но пока не повезло.NoMethodError in Reservations # index undefined метод `strftime 'для nil: NilClass
Это моя модель пользователя:
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable
attr_accessible :name, :email, :password, :remember_me
has_many :reservations
end
Бронирование модели:
class Reservation < ActiveRecord::Base
attr_accessible :user_id, :user_name, :start_time, :end_time, :project, :which_room
end
Индекс бронирования:
<tbody>
<% @reservations.each do |reservation| %>
<tr>
<td><%= current_user.name %></td>
<td><%= reservation.project %></td>
<td><%= reservation.start_time.strftime("%I:%M %p")%></td>
<td><%= reservation.end_time.strftime("%I:%M %p")%></td>
<td><%= reservation.which_room %></td>
<td><%= link_to 'Edit', edit_reservation_path(reservation) %></td>
<td><%= link_to 'Destroy', reservation, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</tbody>
</table>
</div>
Показать действие:
<p>
<strong>User:</strong>
<%= @user.name %>
</p>
<p>
<strong>Project:</strong>
<%= @reservation.project %>
</p>
<p>
<strong>Start time:</strong>
<%= @reservation.start_time %>
</p>
<p>
<strong>End time:</strong>
<%= @reservation.end_time %>
</p>
<p>
<strong>Room number:</strong>
<%= @reservation.which_room %>
</p>
И контроллер Бронирование: класс ReservationsController < ApplicationController before_action: set_reservation, только: [: шоу, редактировать,: обновление,: уничтожить]
def index
@reservations = Reservation.all.order(which_room: :asc, start_time: :desc)
end
def show
end
def new
@reservation = Reservation.new
end
def edit
end
def create
@reservation = Reservation.new(reservation_params)
respond_to do |format|
if @reservation.save
format.html { redirect_to @reservation, notice: 'Reservation was successfully created.' }
format.json { render action: 'show', status: :created, location: @reservation }
else
format.html { render action: 'new' }
format.json { render json: @reservation.errors, status: :unprocessable_entity }
end
end
end
def update
respond_to do |format|
if @reservation.update(reservation_params)
format.html { redirect_to @reservation, notice: 'Reservation was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: 'edit' }
format.json { render json: @reservation.errors, status: :unprocessable_entity }
end
end
end
def destroy
@reservation.destroy
respond_to do |format|
format.html { redirect_to reservations_url }
format.json { head :no_content }
end
end
private
def set_reservation
@reservation = Reservation.find(params[:id])
end
def reservation_params
params.require(:reservation).permit(:project, :start_time, :end_time, :which_room)
end
end
ТИА!
Для конкретной записи? Должен ли я удалить все текущие записи из консоли и обновить? – eatsleepcode
Просто добавьте 'if' для проверки наличия даты в вашем представлении или если вы хотите удалить все, в консоли rails выполните Reservation.where ('start_time IS NULL ИЛИ end_time IS NULL'). Destroy_all –