不能将字符串转换为int"字符串不能被强制转换为Fixnum"

时间:2014-05-30 00:13:57

标签: ruby-on-rails ruby

我正在使用Ancestry gem和ActiveAdmin。我需要使用深度方法来缩进选择选项。我相信深度是一个字符串所以我想转换成一个int,这样我就可以乘以一个空格。像这样:

    form do |f|


    f.inputs "Category" do

      f.input :ancestry, :as => :select, :collection => ItemsCategory.all.map {|u| [u.depth.to_i * "" + u.name  , u.id]}

      f.input :name
    end
    f.actions
    f.semantic_errors
  end

1 个答案:

答案 0 :(得分:3)

我假设u.depthFixnum

问题是u.depth * " "。你不能将Fixnum乘以String,这是没有意义的。反过来也没关系:

3 * "a"
# => TypeError: String can't be coerced into Fixnum
"a" * 3
# => "aaa"

如果你说:

  

我相信深度是一个字符串所以我想转换成一个int

然后您可以u.depth.to_i(如果字符串不是数字,将返回0。)