2016-10-29 5 views
0

Я пытаюсь получить доступ к массиву пользователей, который я получаю из флажка, чтобы добавить к ассоциации HABTM между моделью резервирования и пользователя.Доступ к вложенным параметрам в Rails - атрибуты из флажка

Params хэш следующим образом:

Parameters: {"utf8"=>"✓", "authenticity_token"=>"vx0dTg8Q2XpyFcXpmmiwbwtFwNiRO25CQImGBasArDZjEbOmjh2lkBSdQGl8Z2Sgr7+kF2qveergEFjZr63AHQ==", "reservation"=>{"name"=>"daads", "phone"=>"", "email"=>"", "number_people"=>"1", "duration"=>"1", "address"=>"", "description"=>"", "users"=>["", "3", "2"]}, "commit"=>"Create Reservation", "date"=>"2016-10-30", "hour"=>"01:30", "id"=>"1"} 

Мой метод код:

def add_reservation 
    @business = Business.find(params[:id]) 
    @reservation = Reservation.new(reservation_params) 
    init_date = params[:date].to_s + " " + params[:hour].to_s + ":00" 

    @reservation.date = init_date.to_datetime 
    @reservation.date_end = (@reservation.date.to_time + @reservation.duration.hours).to_datetime 


    user_reservation_params[:users].each do |u| 
    @reservation.users << u 
    end 

    @business.reservations << @reservation 

    flash[:success] = "Reservation added!" 
    redirect_to business_path(@business) 
end 

Мои помощники определяются как:

private 
def reservation_params 
    params.require(:reservation).permit(:name, :email, :address, :phone, :duration, :date, :date_end, :number_people, :description) 
end 

private 
def user_reservation_params 
    params.require(:reservation).permit(:users => []) 
end 

То, как я в настоящее время доступа пользовательская часть хэша params дает мне пустые переменные ... Как я могу получить доступ к этим значениям?

+0

попробуйте добавить ': users => []' как сильный параметр в 'reserve_params' и получить доступ к нему с помощью' reserve_params ['user'] 'для доступа к пользователям на вашем контроллере – sa77

ответ

0

Вы можете получить к ним доступ просто как params[:reservation][:users], не нужно использовать сильные параметры для этого, так как они не используются в массовом назначении.

Смежные вопросы