ПРИМЕЧАНИЕ. Публикация в качестве ответа, так как места для комментариев будет недостаточно.Это может быть улучшено за счет лучшего понимания требований.
Ошибка no implicit conversion from Request to string
возникает, когда мы пытаемся объединить @requestEmail
со строкой.Эта строка, чтобы быть точной:
@requestNewEmail = @request.email + ', ' + @requestEmail
Это потому, что мы выбираем @requestEmail
, используя этот запрос:
@requestEmail = Request.where(id: @requestID).select(:email)
Это значит, что он возвращает ActiveRecord::Relation
объект.Что-то вроде #<ActiveRecord::Relation [#<Request id: nil, email: <some_email>>]>
.Это массив, и мы могли бы извлечь из него первое электронное письмо, используя @requestEmail.first.email
, а затем объединить его со строкой.
Однако в вашем коде вы уже получили нужную запись как
@requestID = Request.find(params[:id])
Это можно использовать для получения требуемого значения электронной почты вместо повторного вызова БД.То есть, сам по себе @requestID.email
даст вам значение, которое вы пытаетесь получить, используя @requestEmail = Request.where(id: @requestID).select(:email)
. Я думаю, что весь код может быть упрощен, если требования немного яснее.Может быть, вы могли бы объяснить подробно, что пытается быть достигнуто?Этот текущий ответ, вероятно, устранит ошибку, но я полагаю, что может быть лучший способ удовлетворить ваши требования, поскольку весь этот блок выглядит немного не так.
Пожалуйста, не стесняйтесь комментировать, объясняя более подробную информацию.