как получить объект из строки - рельсы - PullRequest
0 голосов
/ 07 ноября 2010

Я отправляю объект другу через params[:invitations][:friend]. По моим параметрам выглядит так: #< User:0x6925800>. Могу ли я преобразовать эту строку в объект в моем контроллере?

Почему я посылаю объект через params? Потому что я получаю его из функции javascript, которая срабатывает при нажатии поля в моем раскрывающемся меню. И если я пытаюсь отправить только Id(friend.id) моих рельсов объектов, я получаю стек ошибок слишком глубоко.

Я погуглил, но ничего не нашел, как преобразовать строку в объект, поэтому любые ответы будут с благодарностью.

Таким образом, мой вопрос остается, как я могу преобразовать мою строку (объекта) в фактический объект в моем контроллере?

Ответы [ 2 ]

2 голосов
/ 07 ноября 2010

Вы не сможете преобразовать это в реальный пользовательский экземпляр. Причина в том, что это конкретный экземпляр пользователя и не сохраняется между запросами. Я бы вернулся и попытался заставить его работать с идентификатором пользователя.

2 голосов
/ 07 ноября 2010

То, о чем вы спрашиваете, называется сериализация .

Вы можете использовать это, но вы не должны. Сериализация может быть полезна для целей кэширования, но в большинстве случаев, если вам это нужно, вы делаете что-то не так. Просто передайте id в скрипт и получите данные снова.

То, что у вас есть #< User:0x6925800> не является сериализованным объектом, оно содержит только имя класса и адрес памяти, поэтому его нельзя сериализовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...