سؤال

يمكنك القيام بذلك عند استخدام 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")
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top