2017-06-30 88 views
0

我這樣做,得到它的從另一個控制器值下拉場的隱式轉換成整數紅寶石,我定義它是這樣的:字符串on Rails的

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

,並調用它像這樣:

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

NÚMERO是一個整數,Resumo是一個字符串

錯誤即時得到當我嘗試查看窗體:

字符串的隱式轉換成整數

  • 我能做些什麼來解決這個問題?
+0

'Tarefa.all.map {| c | [c.Numero,c.Resumo]}'OR'Tarefa.all.map {| c | [c.Resumo,c.Numero]}'假設'Numero'是標識符。 –

+0

現在它只顯示第一個標識符,如果我先把'c.numero'放在第一位,它只顯示'numero',如果我放上'c。 Resumo'首先它只顯示'resumo' –

+0

@xdmanmagiconsei'@ tarefa_list'有合適的值嗎? – Vishal

回答

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.Numero]定義數組的c.Resumo元素因此,像[1,2,3]['a'] 正如你能想象它贏得了」的事實工作。

相關問題