J'ai un modèle de réservation, contrôleur, vue. Les utilisateurs peuvent faire une réservation et un conducteur peut réclamer plus tard une réservation. La création de la réservation fonctionne bien, je suis en mesure d'afficher toutes les réservations non réclamées à un conducteur, mais je ne suis pas en mesure de mettre à jour la réservation avec un ID de pilote lorsque le conducteur frappe le bouton de réclamation. J'ai ajouté le driver_id au modèle de réservation et j'essaie d'utiliser la méthode de mise à jour dans le contrôleur de réservations pour mettre à jour le champ du pilote, je pense que je ne passe pas les paramètres correctement à link_to. Quelqu'un peut-il s'il vous plaît me dire ce que je fais mal:Passer des paramètres incorrects à link_to
Réservation Contrôleur:
def update
if @booking.update(booking_params)
redirect_to @booking, notice: "Updated..."
else
render :edit
end
end
private
def set_booking
@booking = Booking.find(params[:id])
end
def booking_params
params.require(:booking).permit(:location_pickup, :location_dropoff, :date_pickup, :date_dropoff, :weight, :load_type)
end
end
contrôleur de pilote
classe DriversController < ApplicationController before_action: authenticate_driver !, sauf: [: show]
def show
@driver = Driver.find(params[:id])
end
def index
@bookings = Booking.where(:driver_id => nil)
end
fin
(drivers/index.html.erb) Voir conducteur
<div class="row">
<div class="col-md-9">
<div class="panel panel-default">
<div class="panel-heading">
Listings
</div>
<div class="panel-body">
<%= current_driver.email %>
<% @bookings.each do |booking| %>
<div class="row">
<div class="col-md-2">
</div>
<div class="col-md-7">
<td> <%= booking.location_pickup %> </td>
<td><%= booking.location_dropoff %></td>
</div>
<div class="col-md-7">
<%= link_to "Claim", update_bookings_path(@booking, driver_id: current_driver.id), :method => :patch, class: "btn btn-primary" %>
</div>
</div>
<% end %>
</div>
</div>
</div>
</div>
routes.rb
Rails.application.routes.draw do
root 'pages#home'
devise_for :users,
:path => '',
:path_names => {:sign_in => 'login', :sign_out => 'logout', :edit => 'profile'},
:controllers => {:registrations => 'registrations'
}
devise_for :drivers,
:path => '/drivers',
:path_names => {:sign_in => 'login', :sign_out => 'logout', :edit => 'profile'},
:controllers => { :registrations => "drivers/registrations" }
resources :users, only: [:show]
resources :drivers, only: [:show, :index, :claim]
resources :bookings
end
itinéraires Rake
edit_booking GET /bookings/:id/edit(.:format) bookings#edit
booking GET /bookings/:id(.:format) bookings#show
PATCH /bookings/:id(.:format) bookings#update
PUT /bookings/:id(.:format) bookings#update
DELETE /bookings/:id(.:format) bookings#destroy
pouvez-vous partager vos routes ... Le deuxième paramètre n'est pas le moyen de passer ... Mais je ne peux vous donner le chemin correct qu'après avoir vu les routes ... – SnehaT
merci SnehaT, j'ai ajouté les routes. S'il vous plaît laissez-moi savoir ce que vous pensez – Mayank