2012-10-16 2 views
1

У меня есть следующий сценарий, где у меня есть дата и время, которое я хотел бы повторить. Я могу получить следующее, чтобы работать в irb, но у меня, похоже, проблема с нулевыми значениями при работе с параметрами post. напр.Rails 3.2 изменить params [] value on create

Это работает в IRB:

DateTime.strptime("10/25/2012 04:27 pm", "%m/%d/%Y %I:%M %P").strftime("%Y-%m-%d %H:%M:00") 
=> "2012-10-25 16:27:00" 

Однако при попытке доступа к значению Params я не могу показаться, чтобы получить доступ к самой ценности. напр.

def create 
    @shipment = params[:shipment] 
    @shipment.ship_date = format_date(@shipment.ship_date) 
    . 
    . 
    . 
end  

def format_date(date) 
    DateTime.strptime(date, "%m/%d/%Y %I:%M %P").strftime("%Y-%m-%d %H:%M:00") 
end 

Когда я устанавливаю переменную вручную со строкой, она работает. Когда я пытаюсь отработать параметр, он, кажется, равен нулю. даже когда я делаю @ shipment.ship_date.to_s, он преобразует его в "" Я знаю, что этот параметр не пуст, как показывает веб-инспектор моего браузера. Я не знаю, как работать с параметрами.

+1

Это может показаться очевидным, но вы уверены, что значение, которое вы ждете, чтобы быть в 'params' хэш там на самом деле? Что на самом деле выглядит «params»? Кроме того, возможно ли, что ключ является строкой, а не символом? – pje

+0

Да, похоже, там. Параметры: {"utf8" => "✓" "shipment" => {"client_id" => "4", "ship_date" => "10/24/2012 07:27 pm", "commit" => "Создать Отгрузка "} – ctilley79

+0

ли это строка против символа idk. – ctilley79

ответ

1
format_date(params["shipment"]["ship_date"]) 

должен работать

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