2013-04-23 2 views
0

У меня есть вопрос о назначении значений с помощью update_attributes.Как назначить значения для update_attributes в рельсах?

В контролере экзамена сохраняется новая запись экзамена, после чего извлекается запись пациента, которая соответствует некоторым новым полям экзамена. Эта часть работает нормально.

@exam.save 

@patient = Patient.joins(:charts).where(:dob => @exam.patient_dob).where(:charts => { :provider_id => @exam.provider_id, :patient_mrn => @exam.patient_mrn }) 

Тогда я пытаюсь обновить новую @exam запись со значением из записи @patient используя следующие, сбой и ожоги ......

@exam.update_attributes(:patient_id, @patient.id) 

Как бы я пошел так далеко заблудиться?

ответ

2

Вы обновляете одно значение там, а не несколько значений, поэтому более подходящим является update_attribute. update_attributes принимает хэш значений для обновления.

См http://apidock.com/rails/ActiveRecord/Base/update_attribute и http://apidock.com/rails/ActiveRecord/Persistence/update_attributes

+0

что-то заметить здесь ** update_attribute ** не проходят по правилам проверки, но update_attributes ли –

+0

Да я выбрал update_attributes для правил проверки. Но в любом случае я думаю, что мой хэш не отформатирован правильно ни для одного. Я получаю undefined метод 'id 'для # -any предложения ?? – user2284821

+0

Абсолютно - 'где' всегда будет возвращать вам отношение, т.е. список объектов. Если вы просто хотите первый, назовите '.first' на нем. – sevenseacat

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