ruby 未定义nil的方法'payment_required?':NilClass

km0tfn4u  于 2023-01-30  发布在  Ruby
关注(0)|答案(1)|浏览(155)

enter code here在rails 7和ruby版本3.2.0上我的方法返回nil,即使它得到了数据。我正在按照教程来构建一个应用程序。
在我的预订视图中,news.html.erb包含<% if @booking_type.payment_required? %>
所述预订控制器

def new
  @booking = Booking.new
  @booking_type = BookingType.find_by(name: params[:booking_type])
end

def booking_params
 params.require(:booking).permit(:booking_type_id, :status, :name, :email, :start_at, :end_at, :notes)
end

预订类型控制器参数

def booking_type_params
      params.require(:booking_type).permit(:name, :location, :description, :color, :duration, :payment_required, :price, :user_id)
    end

在bookings控制器中创建booking_type示例之后

@booking_type = BookingType.find_by(name: params[:booking_type])

对于视图中的payment_required方法,我仍然得到未定义的nil方法'payment_required?':NilClass

mznpcxlj

mznpcxlj1#

在该方法中:

def new
  @booking = Booking.new
  @booking_type = BookingType.find_by(name: params[:booking_type])
end

它应该接收一个booking_type参数。如果没有设置该参数或者没有具有该名称的BookingType记录,则@booking_type变量将为nil,导致undefined method payment_required?' for nil:NilClass'错误。

相关问题