У меня есть следующие RentalRequest
объект:Update атрибут времени в Rails, супер просто, я хочу быть плотными
#<RentalRequest id: 3, pickup_start: "2015-03-16 21:00:00", pickup_end: "2015-03-16 23:00:00">
Я хотел бы обновить pickup_start
и pickup_end
быть на 2015-03-17 вместо этого. Когда я запускаю:
RentalRequest.find(3).update_attribute(pickup_end: "2015-03-17 23:00:00")
ArgumentError: wrong number of arguments (1 for 2)
Не знаю, какой еще аргумент мне необходимо предоставить.
Если это помогает, вот тип и вывод атрибута сам по себе
RentalRequest.find(3).pickup_end
=> Mon, 16 Mar 2015 23:00:00 UTC +00:00
RentalRequest.find(3).pickup_end.class
=> ActiveSupport::TimeWithZone
ой супер странно ... похоже, это всегда было случай, но часть причины, по которой я задал этот вопрос, заключается в том, что я использую update_attribute ВСЕ ВРЕМЯ, поскольку он обходит проверку и всегда использовал синтаксис name: value, и он работал до ... – james
@james подпись 'update_attribute' была то же самое с rails 1.0.0. Вы должны использовать 'update_attributes', если вы передавали аргумент Hash. И если вам нужно установить оба, я бы использовал перед обратным вызовом, чтобы обрабатывать настройку 'pickup_start' таким образом, если вам когда-либо понадобится изменить эту логику, вам нужно изменить ее только один раз. – engineersmnky