[英]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.