【发布时间】:2016-04-18 20:15:48
【问题描述】:
我的消息对象有一个链接属性@message.link,它是一个字符串。在将 message.link 保存到 db I URI.extract from message.body 之前:
["http://getbootstrap.com/javascript/#tabs", "http://paulgraham.com/re.html"]
一旦我将它保存到数据库 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
【问题讨论】:
-
那是无效的。你的意思是
"[\"http...? -
是的,我的意思是这样的:"[\"paulgraham.com/re.html\"]"
-
你修复了你不应该有的地方。现在,它的另一种方式是错误的。
-
sawa,我很困惑。如果我从 message.body 中提取 URI,我会得到:[“getbootstrap.com/javascript/#tabs”、“paulgraham.com/re.html"]”,然后我将其作为 message.link 保存到数据库中。然后我从数据库中获取数据并返回"[\"getbootstrap.com/javascript/#tabs\", \"paulgraham.com/re.html\"]"
标签: ruby-on-rails arrays ruby string