如何从字符串中获取对象 - rails

时间:2010-11-07 20:02:05

标签: ruby-on-rails ruby

我通过params[:invitations][:friend]发送对象朋友。在我的参数中看起来像:#< User:0x6925800>。我可以将此字符串转换为控制器中的对象吗?

为什么我通过params发送对象?因为我从javascript函数中获取它,当我点击下拉菜单中的字段时触发该函数。如果我尝试只发送一个Id(friend.id)我的对象rails会给我一个错误堆栈太深。

我google了一下,但没有发现如何将字符串转换为对象,所以任何答案都会非常感激。

所以我的问题仍然是如何将我的(对象的)字符串转换为控制器中的实际对象?

2 个答案:

答案 0 :(得分:2)

你要问的是serialization

你可以使用它,但你不应该使用它。序列化可能适用于缓​​存目的,但在大多数情况下,如果您需要它 - 您做错了什么。只需将id传递给脚本并再次检索数据。

你得到的#< User:0x6925800>不是序列化对象,它只包含类名和内存地址,所以它不能被反序列化。

答案 1 :(得分:2)

您无法将其转换为真实的用户实例。原因是这是User的特定实例,并且不会在请求之间保持不变。我会回去尝试使用用户ID。