没有将String隐式转换为Rails上的Integer Ruby

时间:2017-06-30 10:53:34

标签: ruby-on-rails ruby forms

我正在做一个下拉字段,从另一个控制器获取它的值,我这样定义:

def dropdown
        @tarefa_list = Tarefa.all.map { |c| [c.Numero] [c.Resumo]}
     end

并将其称为:

<%= f.select :Tarefa, @tarefa_list, {}, {class: "dropdown"} %>

Numero是一个整数,Resumo是一个字符串

当我尝试查看表单时出现的错误:

  

没有将String隐式转换为整数

  • 我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:0)

怎么样:

@tarefa_list = Tarefa.all.map { |c| [c.Numero, c.Resumo] }

然后:

<%= f.select :Tarefa do %>
  <% @tarefa_list.each do |c| -%>
    <%= content_tag(:option, c.first, value: c.last) %>
  <% end %>
<% end %>

它不漂亮,但我们可以从这里开始。

(基于:http://guides.rubyonrails.org/form_helpers.html#select-boxes-for-dealing-with-models

顺便说一下,我认为no implicit conversion of String into Integer来自于表达式[c.Numero] [c.Resumo]试图获取c.Resumo定义的数组的[c.Numero]元素这样的事实。[1,2,3]['a'] } 你可以想象它不起作用。