1

Form Helper's のドキュメントにform_forよると:

form_for メソッドは、モデル ID を非表示フィールドとしてフォームに自動的に含めます。これは、フォーム データとそれに関連付けられたモデルとの間の相関関係を維持するために使用されます。一部の ORM システムは、ネストされたモデルで ID を使用しないため、この場合、非表示の ID を無効にできるようにする必要があります。

これは理にかなっていて重要ですがform_for、同じページに 2 つの呼び出しがある場合、同じマークアップと同じ ID を持つ 2 つの非表示フィールドが生成されます。私の場合、同じページでこれを 2 回生成します。

<input id="clinic_patient_signup_clinic_patient_link_person_attributes_patient_information_attributes_id" name="clinic_patient_signup[clinic_patient_link][person_attributes][patient_information_attributes][id]" type="hidden" value="32" /></div>

idその入力の属性を上書きする方法はありますか? 私の記憶が正しければ、name重要なのは属性だけであり、値は同じままでかまいません。私たちのサイトはWCAG 2.0 アクセシビリティに準拠している必要があり、同じページに同じ ID を持つ 2 つのタグを使用することはできません。(これも有効な HTML ではありません。)

4

1 に答える 1

0

form_for :namespaceオプションを使用してください。

完全な回答については、https://stackoverflow.com/a/26415985/2511083を参照してください。

于 2014-10-17T00:21:37.257 に答える