2012-04-02 3 views
0

Моя форма проходит даты в формате «2 апреля 2012»Форматирование параметров даты перед созданием?

Я понимаю, что я могу форматировать отдельные Params используя что-то вроде этого:

@release_date = Date.parse(params[:release_date]).strftime("%Y-%m-%d") 
@original_release_date = Date.parse(params[:original_release_date]).strftime("%Y-%m-%d") 
@preorder_start_date = Date.parse(params[:preorder_start_date]).strftime("%Y-%m-%d") 

Но как я затем передать форматированные значения моего создать действие?

@product = @release.products.create(params[:product]) 

Заранее благодарен!

ответ

2

Если у вас есть такое же поле в базу данных затем перезаписать значение Params как:

params[:product][:release_date] = Date.parse(params[:release_date]).strftime("%Y-%m-%d") 
params[:product][:original_release_date] = Date.parse(params[:original_release_date]).strftime("%Y-%m-%d") 
params[:product][:preorder_start_date] = Date.parse(params[:preorder_start_date]).strftime("%Y-%m-%d") 

@product = @release.products.create(params[:product]) 
+0

Я вижу, как это должно работать, но я получаю «TypeError в ProductsController # create/can not dup NilClass». – Raoot

+0

просто положил условие до даты синтаксического анализа, например: Date.parse (params [: preorder_start_date]). strftime ("% Y-% m-% d") if! params [: preorder_start_date] .nil? – Vik

+0

Отлично, спасибо! – Raoot

0

Вы можете сделать, как это .........

@release_date = Date.parse(params[:release_date]).strftime("%Y-%m-%d") 
    @original_release_date = Date.parse(params[:original_release_date]).strftime("%Y-%m-%d") 
    @preorder_start_date = Date.parse(params[:preorder_start_date]).strftime("%Y-%m-%d") 

А потом

@product.release_date = @release_date 
    @product.original_release_date = @original_release_date 
    @product.preorder_start_date = @preorder_start_date 
    @product.save 

Done !!!!!!!!!!

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