2015-04-24 2 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

Привет, Ричард, поэтому я считаю, что параметры верны, и именно поэтому я не согласен с тем, чтобы устранить «Параметр отсутствует или значение пуста: бронирование», поскольку я новичок в 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> 
Смежные вопросы