2015-04-24 71 views
0

這裏被預訂控制器:參數是丟失或爲空值:

class BookingsController < ApplicationController 
    before_action :logged_in_user, only: [:create] 

    def new 
     @booking = Booking.new 
    end 

    def index 
     @bookings = Booking.all 
    end 

    def create 
     @booking = current_user.bookings.build(booking_params) 
     if @booking.save 
      flash[:success] = "Booking created!" 
      redirect_to root_url 
     else 
      render 'static_pages/home' 
     end 
    end 


    def show 
     @booking = Booking.find(params[:id]) 
    end 

    def destroy 
     @booking = Booking.find(params[:id]) 
     @booking.destroy 
     redirect_to bookings_path 
    end 

    private 
     def booking_params 
      params.require(:booking).permit(:date, :hour, :game) 
     end 
end 

當我UTF8和真實性令牌之後發佈我不明白,爲什麼「#< \訂票:0x000001061928a8> \」,而不是簡單地「預訂」,那麼嵌套的哈希包含日期,小時和遊戲,我允許在控制器中。

這裏是視圖:

<%= form_for(@booking) do |f| %> 
    <%= render 'shared/error_messages', object: f.object %> 

    <%= f.label :day %> 
    <%= date_field(@booking, :date) %> 

    <%= f.label :hour %> 
    <%= number_field(@booking, :hour, in: 8..19) %> 

    <%= f.label :game %> 
    <%= select(@booking, :game, [['Singles', 1], ['Doubles', 2]]) %> 

    <%= f.submit "Book", class: "btn btn-primary" %>  
<% end %> 

任何幫助非常讚賞。

+0

我想包括張貼的參數,但它不會在這裏接受它無論是作爲代碼或文本。反斜槓是爲了逃避預訂令牌中的大於和小於字符。 –

+0

我不太瞭解這個問題。你能詳細解釋一下嗎?獲取一個<\ Booking:0x000001061928a8> \「對象就是你所期望的創建動作,所以我必須丟失一些東西。 – RichardAE

+0

嗨,理查德,所以我認爲這些參數是正確的,這就是我爲什麼要消除「param丟失或者值爲空:預訂」,因爲我是Rails的新手,不確定在預訂前是否有散列,也不知道如何生成十六進制數字 –

回答

1

好吧,簡單地說,我沒有使用選擇框的表單生成器的f變量,原來我是但我有問題渲染選擇框,所以我把它拿出來。一定是由於語法錯誤。 這裏的form_for使用日期選擇器等選擇框的工作:

<div class="field"> 
<%= form_for(@booking) do |f| %> 
    <%= render 'shared/error_messages', object: f.object %> 

    <%= f.label :day %> 
    <%= f.date_field :day %> 

    <%= f.label :hour %> 
    <%= f.number_field :hour, in: 8..19 %> 

    <%= f.label :game %> 
    <%= f.select :game, [['Singles', 1], ['Doubles', 2]] %> 

    <%= f.submit "Book", class: "btn btn-primary" %>  
<% end %> 

</div> 
相關問題