2017-09-24 8 views
0

OK - それは私と一緒にクマ、問題を説明するために時間がかかります。paramが存在しないか、値が空である:予約

私は現在、Airbnbを開発する方法についてのチュートリアルを次のようです。予約モデルの一部として、start_date/end_dateがあり、これら2つは予約コントローラプライベートアクション内で使用されていました。

private 
     def reservation_params 
      params.require(:reservation).permit(:start_date, :end_date) 
     end 

このチュートリアルでは、予約ビューでフォームを作成し、ルームページで使用する方法について説明します。私は私の目的にコースを適応しようとしている

予約/ _form.html.erb

<%= form_for([@room, @room.reservations.new]) do |f| %> 
      <div class="row"> 
      <div class="col-md-6"> 
       <label>Check In</label> 
       <%= f.text_field :start_date, readonly: true, placeholder: "Start Date", class: "form-control datepicker" %> 
      </div> 
      <div class="col-md-6"> 
       <label>Check Out</label> 
       <%= f.text_field :end_date, readonly: true, placeholder: "End Date", class: "form-control datepicker", disabled: true %> 
      </div> 
      </div> 
    : 
    : 
    : 

    <%= f.submit "Book Now", id: "btn_book", class: "btn btn-normal btn-block", disabled: true %> 
     <% end %> 

。私は開始日/終了日は必要ありません。ユーザーが行う必要があるのは、購入を完了するためにボタン「購入」をクリックすることです(価格と数量は固定されています)。この

private 
     def reservation_params 
      params.require(:reservation) 
     end 

予約/ _form.html.erb

<%= form_for([@room, @room.reservations.new]) do |f| %> 
    <%= f.submit "Book Now", id: "btn_book", class: "btn btn-normal btn-block", disabled: true %> 
<% end %> 

結果である:だからここ

ReservationsControllerは、私も、私は(明らかに今のところ成功を)やるんだろう何であります:PARAMが欠落しているか、値は空です:予約

質問:どのようにパラメータを使用する必要がありますか。パーミットなしのプライベートステートメントで?私は全体的に何が悪いのですか?

ありがとうございます。

+0

あなたのプログラムをデバッグするために 'binding.pry'を使ってください。入ってくる' params'配列を調べて、あなたのパラメータがどこにあるのかを調べて、なぜそれらがどこにあるのだろうと思ったのか分かりません。 – meagar

答えて

1

どのようにparamsを使用するか。パーミットなしのプライベートステートメントで?

あなたはどんなのparamsを提出しない場合は、(それが空でない値で、キーreservationを意味する)reservation非空を含むようにparamsを必要とする、reservation_paramsを必要としません。

に提出し、あなただけのコントローラメソッド(私は仮定し、create 1)でreservationを作成することができます。今のところ

def create 
    @room.reservation.create! 
    ... 
end 

、私は推測し、この方法は有用ではありません@room.reservation.new(reservation_params)のようなものを持っていますreservation_paramsは空です。

+0

IT WORKED !!!!ありがとうございました。プライベートパラメータを削除し、作成アクションを@reservation = current_user.reservations.buildに再構成しました。 – Lily

関連する問題