Ruby 如何在rails中编写强参数

Ruby 如何在rails中编写强参数,ruby,ruby-on-rails-4,Ruby,Ruby On Rails 4,如何使用强参数实现以下创建操作 def create #@user = User.find(params[:user_id]) @listing = Listing.find(params[:listing_id]) if current_user != @listing.user @reservation=Reservation.new(user_id:current_user.id,listing_

如何使用强参数实现以下创建操作

  def create
      #@user = User.find(params[:user_id])

       @listing = Listing.find(params[:listing_id])

       if current_user != @listing.user
                       @reservation=Reservation.new(user_id:current_user.id,listing_id:params[:reservation][:listing_id],price:params[:reservation][:price],
                                    total:params[:reservation][:total],start_date:params[:reservation][:sdate],end_date:params[:reservation][:edate],
                                    driver_name:params[:reservation][:driver_name],no_of_passengers:params[:reservation][:no_of_passengers],days:params[:reservation][:days],reservation_status:false,reservation_state: 'PENDING')
    else
        @reservation=Reservation.new(user_id:current_user.id,listing_id:params[:reservation][:listing_id],price:params[:reservation][:price],
                                    total:params[:reservation][:total],start_date:params[:reservation][:sdate],end_date:params[:reservation][:edate],
                                    driver_name:params[:reservation][:driver_name],no_of_passengers:params[:reservation][:no_of_passengers],days:params[:reservation][:days],reservation_status:false,reservation_state: 'BLOCKED')
    end
    @reservation.save
    end
我拥有来自_form.html.erb accept user_id、reservation_status和reservation_state的所有属性。我可以允许一些属性,如:

def reservation_params  
    params.require(:reservation).permit(:start_date, :end_date, :price, :listing_id,:total,:driver_name,:no_of_passengers,:days)
如何允许用户完成预订的所有属性,包括用户id、预订状态和预订状态


提前谢谢

我将从以下内容开始:

def reservation_params
  parameters = params.require(:reservation).permit(
    :listing_id, :sdate, :edate, :driver_name, :no_of_passengers, :days
  )

  parameters.merge!(user_id: current_user.id, reservation_status: false)

  if current_user != listing.user
    parameters.merge!(reservation_state: 'PENDING')
  else
    parameters.merge!(reservation_state: 'BLOCKED')
  end
end

def listing
  @listing ||= Listing.find(params[:listing_id])
end

我将从以下内容开始:

def reservation_params
  parameters = params.require(:reservation).permit(
    :listing_id, :sdate, :edate, :driver_name, :no_of_passengers, :days
  )

  parameters.merge!(user_id: current_user.id, reservation_status: false)

  if current_user != listing.user
    parameters.merge!(reservation_state: 'PENDING')
  else
    parameters.merge!(reservation_state: 'BLOCKED')
  end
end

def listing
  @listing ||= Listing.find(params[:listing_id])
end