2017-02-20 9 views
0

は、どのように私は以下の強いパラメータは、レールに強いパラメータを記述する方法

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 

私はすべての属性がUSER_ID、reservation_statusを受け入れる_form.html.erbから来ているとreservation_state.Iを許可することができますを使用してアクションを作成し実装することができますなどの一部の属性:

def reservation_params 
    params.require(:reservation).permit(:start_date, :end_date, :price, :listing_id,:total,:driver_name,:no_of_passengers,:days) 

はどうやって予約を完了するためにユーザーのためのuser_id、reservation_statusとreservation_stateを含むすべての属性を許可することができます。

ありがとうございます!私はこのような何かを始めるでしょう

答えて

2

:spickermann.Thisは私をたくさん助けた@

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 
+0

ありがとうございました。 – suresh

関連する問題