0
我有一个表格填写预订资料,但我发现了以下错误:未定义的方法`bookings_path”
NoMethodError in Bookings#new
undefined method `bookings_path'
这是发生变化的routes.rb文件后,窝在预订资源用户资源。
我的表单文件的代码如下:
<% provide(:title, 'Book Now!') %>
<section id="book-now">
<%= form_for(@booking) do |f| %>
<header>
<h1>Edit booking</h1>
</header>
<%= f.text_field :name, placeholder: "Name" %>
<%= f.text_field :check_in, placeholder: "Check-in" %>
<%= f.text_field :check_out, placeholder: "Check-out" %>
<%= f.submit "Save" %>
<% end %>
</section>
我的预订控制器代码是:
class BookingsController < ApplicationController
def new
@booking = Booking.new
end
def create
@booking = Booking.new(params_bookings)
@booking.user_id ||= current_user.id
if @booking.save
redirect_to user_path(@booking.user_id)
else
# render 'new'
end
end
end
private
def params_bookings
params.require(:booking).permit(:check_in, :check_out, :name, :user_id)
end
end
和我的routes.rb文件看起来像这样:
Hightide::Application.routes.draw do
resources :users do
resources :bookings
end
match '/users/:user_id/bookings/new', to: 'bookings#new', via: [:post, :get]