В настоящее время я занимаюсь разработкой клиентской панели, где клиент может видеть новые предложения, бронирование и многое другое.
Проблема в том, что у меня есть reservations controller
и dashboards controller
Я хочу отобразить кнопку оплаты в моем index.html.erb
из папки dashboards
. Например:
<% @services.each do |service| %>
<%= form_for([@service, @service.reservations.new]) do |f| %>
<div class="col-12 col-sm-4">
<%= f.submit "Bestellen", class: "btn btn-primary", style: 'float:right' %>
</div>
<% end %>
<% end %>
Но тогда я получаю следующую ошибку:
ActionView::Template::Error (undefined method `reservations' for nil:NilClass):
Это мой контроллер бронирования:
def create
service = Service.find(params[:service_id])
if current_user == service.user
flash[:alert] = "Du kannst nicht dein eigenes Angebot kaufen"
elsif current_user.stripe_id.blank?
flash[:alert] = "Füge eine Zahlungsmehtode hinzu"
return redirect_to payment_method_path
else
@reservation = current_user.reservations.build(reservation_params)
@reservation.service = service
@reservation.price = service.price
charge(service, @reservation)
end
redirect_to dashboard_path
end
Контроллер панели инструментов
def index
@services = Service.all
end
Поэтому я подумал, что я просто создам файл _form.html.erb
в своей папке резервирования, а затем использую <%= render 'reservations/form %>
в своих сводных панелях index
, но это не сработало.