我在 initalizers 文件夹中的 constant.rb 文件中拥有所有常量。
我有两个模型:样本和患者。样本只能有一名患者,但患者可以有多个样本。
当我想使用 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' for 'Sim':String” 错误......我做错了什么?
实现这一目标的最佳方法是什么?
编辑
我已经看到我应该只使用 select 而不是 collection_select,因为我没有从数据库中获取值。所以我尝试了这个:
select(:patient, :patientFeeding, ALIMENTOS)
我得到这个错误:
undefined method `merge' for ["Sim", "Nao", "Desconhecido", "Nao preenchido"]:Array
这似乎是一个简单的映射错误......但过去两天我一直坚持......任何人都可以帮忙吗?