string.split似乎返回一个字符串

时间:2013-02-11 10:58:47

标签: ruby-on-rails csv file-io

如果我在视图中查看debug(),我似乎得到一个字符串而不是预期的数组。当我运行一个控制台时,我会得到一个阵列。有人可以指出我的错误吗?

我在阅读文件和拆分第一行时所做的是:

  def getheader
    filepath = File.join('public', tempfilename)
    line = File.open(filepath, 'r').first

    # scan for the delimiter
    count_comma = line.count(',')
    count_semicolon = line.count(';')
    count_tab = line.count('\t')

    if count_comma > count_semicolon && count_comma > count_tab
        return line.split(',')
    elsif count_semicolon > count_comma && count_semicolon > count_tab
        return line.split(';')
    else count_tab > count_comma && count_tab > count_semicolon
        return line.split('\t')
    end
  end

我在控制器中将此信息返回给视图的代码是:

  def new
    dataset = DataSet.find_by_id(params[:data_set_id])
    @headerinfo = []
    @headerinfo = dataset.getheader
    @internalfields = AddressRecord.column_names
  end

最后是debug(@headerinfo)和debug(@internalfields)的视图。我可以清楚地看到内部字段显示为数组,但headerinfo不是。当我遍历它们时,@ headerinfo.each只通过代码一次。第一个结果是@headerinfo,第二个结果是@internalfields


  • ! “第一,最后,电子邮件

  • 姓名
  • 名字
  • 城市
  • 电子邮件

0 个答案:

没有答案