簡體   English   中英

沒有將String隱式轉換為Integer Ruby on Rails

[英]no implicit conversion of String into Integer Ruby on Rails

我正在做一個下拉字段,它從另一個控制器獲取它的值,我這樣定義它:

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

並這樣稱呼它:

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

Numero是整數,Resumo是字符串

我嘗試查看表單時收到的錯誤即時消息:

沒有將String隱式轉換為Integer

  • 我該怎么做才能解決此問題?

怎么樣:

@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 Integerno implicit conversion of String into Integer來自以下事實:表達式[c.Numero] [c.Resumo]試圖獲取[c.Numero]定義的數組的c.Resumo元素,所以類似[1,2,3]['a']如您所料,它將無法正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM