find(:all)
возвращает массив всех записей, соответствующих условиям (inspect
, вероятно, показывает результат в квадратных скобках). @patientRegistration.first.name
вернет вам имя первой записи в массиве. Однако, если вас интересует только первая или единственная запись, соответствующая условиям, вы можете использовать find(:first)
вместо:
@patientRegistration = PatientRegistration.find(:first,
:conditions => ["name = ?", patientName])
Обратите внимание, что я также изменил ваше условие, чтобы использовать параметр, чтобы он больше не подвергался риску атак SQL-инъекций.
Вы также можете переписать этот код с помощью поиска на основе атрибутов:
@patientRegistration = PatientRegistration.find_by_name(patientName)
Это сделает find(:first)
. Для эквивалента find(:all)
используйте find_<em>all</em>_by
вместо find_by
.