1
我使用Ruby on Rails 4.1爲我的示例項目創建了訂票應用程序。三種模式 - 活動,門票和預訂。活動有許多門票和預訂。門票有很多預訂,它們屬於事件。預訂屬於活動和門票。Rails 4 - BookingsController中的NoMethodError在使用嵌套資源時創建#
這裏的嵌套航線的樣子:
resources :events do
resources :tickets
resources :bookings
end
票控制器運行完美,這裏的控制器代碼:
class TicketsController < ApplicationController
def index
@event = Event.find(params[:event_id])
@tickets = @event.tickets.all
end
def show
@event = Event.find(params[:event_id])
@ticket = @event.tickets.find(params[:id])
end
def new
@event = Event.find(params[:event_id])
@ticket = Ticket.new
end
def create
@event = Event.find(params[:event_id])
@ticket = @event.tickets.create(ticket_params)
if @ticket.save
redirect_to [@event, @ticket]
else
render 'new'
end
end
def edit
@event = Event.find(params[:event_id])
@ticket= @event.tickets.find(params[:id])
end
def update
@event = Event.find(params[:event_id])
@ticket = @event.tickets.find(params[:id])
if @ticket.update(ticket_params)
redirect_to [@event, @ticket]
else
render 'edit'
end
end
def destroy
@event = Event.find(params[:event_id])
@ticket = @event.tickets.find(params[:id])
@ticket.destroy
redirect_to event_tickets_path
end
private
def ticket_params
params.require(:ticket).permit(:ticket_name, :booking_start_date, :booking_end_date, :ticket_price, :ticket_quantity, :minimum_quantity, :maximum_quantity, :terms_conditions, :more_information)
end
末
然而,當我按照步驟創建預訂控制器,我收到一條錯誤消息:
NoMethodError in BookingsController#create
undefined method `bookings' for #<Event:0x007f84dd6cc7a8>
預訂控制器看起來是這樣的:
class BookingsController < ApplicationController
def new
@event = Event.find(params[:event_id])
@booking = Booking.new
end
def create
@event = Event.find(params[:event_id])
@booking = @event.bookings.create(booking_params)
if @booking.save
redirect_to [@event, @booking]
else
render 'new'
end
end
def show
@event = Event.find(params[:event_id])
@booking = @event.bookings.find(params[:id])
end
private
def booking_params
params.require(:booking).permit(:buyer_name, :email, :mobile, :address, :order_quantity)
end
end
有人可以讓我知道我做錯了嗎?
是否定義'的has_many:在'事件bookings' '模特? – MrYoshiji