予約モデルがあります。ユーザーがいずれかのリンクをクリックして予約を確認/拒否するようにします。フォームを作成する必要がないようにしています。
これが私がそれを実装しようとした方法です:
<% @bookings.each do |booking| %>
<%= link_to "Confirm", appointment_booking_path(@appointment, booking, :status => "confirmed"), :method => :put, confirm: 'Are you sure?', :class => 'btn btn-success' %>
<%= link_to "Reject", appointment_booking_path(@appointment, booking, :status => "rejected"), :method => :put, confirm: 'Are you sure?',:class => 'btn btn-danger' %>
<%end%>
リンクの1つをクリックすると、このエラーが発生します。
NoMethodError in BookingsController#update
undefined method `[]' for nil:NilClass
app/controllers/bookings_controller.rb:64:in `update'
予約は予定内にネストされています。これが私のレーキルートです:
PUT /appointments/:appointment_id/bookings/:id(.:format)
appointment_booking GET /appointments/:appointment_id/bookings/:id(.:format)
edit_appointment_booking GET /appointments/:appointment_id/bookings/:id/edit(.:format)
BookingController更新アクション:
line 64* @appointment = Appointment.find(params[:booking][:appointment_id])
@booking = Booking.find(params[:id])
さらに情報が必要な場合はお知らせください。前もって感謝します。