从表示数组的字符串中提取元素

时间:2016-01-13 17:57:55

标签: ruby-on-rails arrays ruby string

我的消息对象有一个链接属性@message.link,它是一个字符串。在从message.body:

保存message.link到db I URI.extract之前
["http://getbootstrap.com/javascript/#tabs", "http://paulgraham.com/re.html"]

一旦我将其保存到db message.link将保存为:

"[\"http://getbootstrap.com/javascript/#tabs\", \"http://paulgraham.com/re.html\"]"

当我稍后从db获取数据时如何从message.link字符串中获取数据?

["http://getbootstrap.com/javascript/#tabs", "http://paulgraham.com/re.html"]

要显示所有消息对象的链接,我应该如何提取链接?假设message(1).link有一个链接,message(2)有三个链接,我想将所有四个链接显示为@message_links或任何实例变量的分隔元素。

更新

方法有效,但无法显示:created_at并正确进行分页,因为@ message_links2将是一个链接数组。

@message_links = @conversation.messages.with_link.order(created_at: :desc).paginate(page: params[:page], per_page: 12)
@message_links2 = @message_links.map(&:link).flatten

1 个答案:

答案 0 :(得分:1)

这是您想要序列化列的位置。那你就不需要自己做转换了。见:Using Rails serialize to save hash to database