繁体   English   中英

如何遍历数据库Ruby on Rails中的字符串数组

[英]How to iterate through array of strings from database Ruby on Rails

我将字符串数组保存到Rails数据库中,但是当我在视图中使用它时,我相信它正在打印该数组的字符串定义。 我在这里处理JSON吗? (又名,当它保存到数据库中时,它只是包装在字符串中的数组吗?)

如何获得它,以便在我看来仅显示项目?

<%= record.items %>

显示在我的html标记内:

["item1", "item2", "item3"]

我尝试遍历record.items.each do |item| 但这没有用。

如果要将“精确”数组另存为String,则Array#each将不起作用,因为这不是String类中的方法。

也许不是最好的选择,但是您可以使用JSON.parse,这样可以获取数组并能够遍历其中的每个对象:

require 'json'

str = '["item1", "item2", "item3"]'
JSON.parse(str).each { |item| p item }
# "item1"
# "item2"
# "item3"

为了使这项工作有效,您的字符串必须是一个数组,在您的示例中,第二项缺少双引号。

您可以考虑根据当前数据库使用序列化或数组数据类型。

解决问题的更好方法是序列化您的项目列。 我认为默认情况下是Array,但是您可以使用Hash或JSON。

class Record < ActiveRecord::Base
  serialize :items
end

调用record.items完全按照您需要的方式返回数据。 如果您这样做,则必须更新旧记录以支持它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM