1

initalizers フォルダーの constant.rb ファイルにすべての定数があります。

サンプルと患者の 2 つのモデルがあります。サンプルは 1 人の患者のみを持つことができますが、患者は複数のサンプルを持つことができます。

constants.rb の定数の 1 つを使用する場合は、新しいサンプル フォームで、単純な選択を行います。

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

そして、それはうまく機能します。

患者モデルのフィールドを使用する場合は、collection_select を使用します。

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

そしてそれはまた正常に動作します...

私が今やりたいことは、患者モデルに関連する定数の 1 つを新しいサンプル フォームで使用することです...

定数は次のとおりです。

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

私はこのようなことができると思いました:

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

しかし、「'Sim':String の未定義のメソッド `patientFeeding'」エラーが返されます...何が間違っていますか?

これを達成するための最良の方法は何ですか?

編集

データベースから値を取得していないため、collection_select の代わりに select のみを使用する必要があることがわかりました。だから私はこれを試しました:

select(:patient, :patientFeeding, ALIMENTOS)

そして、私はこのエラーを受け取ります:

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

これは単純なマッピング エラーのようです... しかし、私は過去 2 日間それで立ち往生しています... 誰でも助けてくれますか?

4

1 に答える 1

2

単一の選択をしたい場合:

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

複数選択したい場合

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

コレクション入力のソース コードは、ここにあります

このプロジェクトは、例の優れたソースであることがわかりましたsimple_form

于 2014-02-18T16:55:00.220 に答える