У меня есть приложение Rails3 с рабочими процессами, и у них много рабочих заданий.В WorkAssignments есть поле work_sent_date, в котором дата работы была отправлена человеку.На экране редактирования рабочего процесса я отображаю поле с датой отправки работы, но рабочий процесс не имеет атрибута work_sent_date.Если у какого-либо рабочего задания есть дата, я отображаю самое последнее, и ее нельзя редактировать.Если все пусто, я отображаю текстовое поле, которое можно редактировать, и в WorkflowController # update, если эта дата заполнена, поле work_sent_date рабочих назначений получает эту дату.
Это работает, когда я проверяю его вручную.Полагаю, я мог бы просто создать для него атрибут, но я стараюсь быть хитрым и не иметь избыточных данных.
Я пытаюсь написать тест для этого.Сначала я утверждаю, что WorkAssignment # work_sent_date пуст для всех рабочих заданий.Затем я пробую "post: update" и не могу понять, как передать значение work_sent_date, которое является полем формы, но не атрибутом.Что я хочу сделать, это что-то вроде.
test "setting work_sent_date in wf sets it in wa" do
@workflow.work_assignments.each do |wa|
assert wa.work_sent_date.blank?
end
get :edit, :id => @workflow.id
assert_response :success
post :update, :workflow => @workflow.attributes, :parameters => {'work_sent_date' => Date.today.to_s}
@workflow.work_assignments.each do |wa|
assert_equal(wa.work_sent_date, Date.today)
end
end
Но это поле параметров не работает.Там нет ошибки, но я продолжаю получать сбои, потому что wa.work_sent_date все еще ноль, поэтому он не передается правильно.Как передать сегодняшнюю дату в качестве дополнительного параметра?
(Или, может быть, есть лучший способ сделать все это, что я с удовольствием рассмотрю.)
Я знаю, что это сложно.Я надеюсь, что я объяснил это хорошо.Мы ценим любые предложения.Я погуглил до смерти и ничего не могу найти.