2013-09-28 52 views
1

我有我的所有常量在constant.rb文件initalizers文件夾中。使用常量與collection_select與simple_form

我有兩個模型:樣本和患者。樣本只能有一個病人,但病人可以有幾個樣本。

在新的樣本形成,當我想用​​constants.rb的常量之一,我做一個簡單的選擇:

<%= f.select :consentimentoContacto, DESCONHECIDO %> 

而且它的偉大工程。

當我想使用領域從患者模型,我用的是collection_select:

<%= f.collection_select(:patientID, Patient.all, :id, :date_of_birth) %> 

而且它也能正常工作......

我想現在要做的,就是用一個常數,與患者有關的模型,新的樣本表格上...的

中不變的是:

ALIMENTOS = ['Sim', 'Nao', 'Desconhecido', 'Nao preenchido'] 

我想我可以做這樣的事情:

<%= f.collection_select(:patientID, ALIMENTOS, :id, :patientFeeding) %> 

但它返回一個「「爲‘辛’未定義的方法`patientFeeding:字符串」錯誤...我在做什麼錯?

達到此目的的最佳方法是什麼?

編輯

我已經看到了,我應該只使用選擇而非collection_select,因爲我不是從數據庫中獲取的值。所以,我想這一點:

select(:patient, :patientFeeding, ALIMENTOS) 

,我得到這個錯誤:

undefined method `merge' for ["Sim", "Nao", "Desconhecido", "Nao preenchido"]:Array 

這似乎是一個簡單的映射錯誤...但我被困在它過去兩天..任何人都可以幫忙?

回答

2

如果你想要做一個選擇:如果你想有一個多重選擇

<%= f.input :meeting_days, as: :select, collection: ["Sim", "Nao", "Desconhecido", "Nao preenchido"], input_html: { multiple: true } %> 

爲集合輸入can be found here的源代碼

<%= f.input :patient, as: :select, collection: ["Sim", "Nao", "Desconhecido", "Nao preenchido"] %> 

我發現this project成爲simple_form示例的重要來源。