Rails formtaghelper مفقود أساليب اختيار ومجموعة
-
23-09-2019 - |
سؤال
يمكنك القيام بذلك عند استخدام form_for(@model...)
:
collection_select(:subscription, :duration, ["Some", "Values"], :to_s, :to_s, {:prompt => true})
والإخراج شيء من هذا القبيل:
<select id="subscription_duration" name="subscription[duration]">
<option value="">Please select</option>
<option value="Some">Some</option>
<option value="Values">Values</option>
</select>
إذا كنت تستخدم نموذجًا بدون نموذج ، ليس لديك طريقة المساعد اللطيفة لإنشاء <option>
علامات لك. بدلاً من ذلك ، عليك القيام بذلك:
select_tag("subscription", '<option value="Some">Some</option><option value="Values">Values</option>')
formhelper و formoptionshelper العمل معا على أ تشكيل لف نموذج, ولديهم select
و collection_select
لجعل الحياة سهلة. لسهل form_tag
(بدون نموذج) ، ومع ذلك ، لا يوجد مثل هذا formoptionstaghelper. formtaghelper لديه select_tag
الطريقة ، ولكن عليك أن تكتب يدويًا الخيارات التي تعتبر مضيعة. يبدو أن هذا قد تم إصلاحه في مكان ما.
يمكنني أن أكتب المساعد الخاص بي للتخلص من كتابة علامات الخيار هذه يدويًا ، لكن هذا ما FormOptionsHelper#collection_select
هل ... هل هناك ما يعادلها للنماذج بدون نماذج؟
المحلول
تحديد و collection_select يمكن أن يسمى بدون نموذج. عادةً ما أستخدم مزيجًا من كلمتين مهمتين ، ومجموعة من الأزواج [Label ، القيمة] لتحديد. العيب الوحيد هو الاضطرار إلى استخدام التنسيق ABC [XYZ].
حاولت استخدام Options_for_select?
select_tag 'Account', options_for_select({ "Basic" => "$20", "Plus" => "$40" }, "$40")