سؤال

وعلى غرار هذا السؤال: خانات على القضبان

ما هي الطريقة الصحيحة للأزرار التي ترتبط على سؤال معين في روبي على القضبان؟ في هذه اللحظة لدي:

<div class="form_row">
    <label for="theme">Theme:</label>
    <br><%= radio_button_tag 'theme', 'plain', true %> Plain
    <br><%= radio_button_tag 'theme', 'desert' %> Desert
    <br><%= radio_button_tag 'theme', 'green' %> Green
    <br><%= radio_button_tag 'theme', 'corporate' %> Corporate
    <br><%= radio_button_tag 'theme', 'funky' %> Funky
</div>

وأريد أيضا أن تكون قادرة على التحقق تلقائيا العناصر المحددة سابقا (إذا كان هذا النموذج إعادة تحميلها). كيف لي أن تحميل بارامس إلى القيمة الافتراضية من هذه؟

هل كانت مفيدة؟

المحلول

وكما هو الحال في هذا المنصب سابقة ، مع تطور طفيف:

<div class="form_row">
    <label for="theme">Theme:</label>
    <% [ 'plain', 'desert', 'green', 'corporate', 'funky' ].each do |theme| %>
      <br><%= radio_button_tag 'theme', theme, @theme == theme %>
      <%= theme.humanize %>
    <% end %>
</div>

وأين

@theme = params[:theme]

نصائح أخرى

ونفس وV، ولكن يرتبط تسميات مع كل زر الراديو. بالنقر على علامة يتحقق زر الراديو.

<div class="form_row">
  <p>Theme:</p>
  <% [ 'plain', 'desert', 'green', 'corporate', 'funky' ].each do |theme| %>
    <br><%= radio_button_tag 'theme', theme, @theme == theme %>
    <%= label_tag "theme_#{theme}", theme.humanize %>
  <% end %>
</div>

وعن طريق Haml، والتخلص من علامات BR لا داعي لها، والمدخلات التي تعشش في التسمية بحيث يمكن اختيار دون مطابقة بطاقات لهويات. أيضا باستخدام form_for. وأود أن نعتبر ذلك اتباع أفضل الممارسات.

= form_for current_user do |form|
  .form_row
    %label Theme:
    - [ 'plain', 'desert', 'green', 'corporate', 'funky' ].each do |theme|
      %label
        = form.radio_button(:theme, theme)
        = theme.humanize

وأود أن أقترح وجود نظرة على formtastic

ويجعل زر الراديو ومجموعات خانة الاختيار إلى حد كبير أسهل وأكثر إيجازا. أن التعليمات البرمجية تبدو هكذا:

    <% semantic_form_for @widget, :html => {:class => 'my_style'} do |f| %>
<%= f.input :theme, :as => :radio, :label => "Theme:", 
:collection =>  [ 'plain', 'desert', 'green', 'corporate', 'funky' ] %>
<% end %>

وFormtastic هو غير مزعجة إلى حد كبير ويمكن أن تكون مختلطة والمتطابقة مع "الكلاسيكية" بناة النموذج. يمكنك أيضا تجاوز الطبقة المغلق formtastic للنموذج كما فعلت أعلاه
    :html => {:class => 'my_style'}

وإلقاء نظرة على Railscasts ذات صلة.

تحديث: لقد انتقلت مؤخرا إلى التي لها تركيب مماثل ل formtastic ولكنه أكثر وخفيفة الوزن وخصوصا يترك التصميم لالمغلق الخاص بك.

وهم، من مستندات وأنا لا أرى كيف يمكن تعيين معرف على أزرار الراديو ... تحاول التسمية للسمة لربط ID على الراديو.

القضبان مستندات لradio_button_tag

وقال ان من وثيقة، أن المعلمة الأولى هو "اسم" ... وهو ما إذا كان هذا هو ما يخلق، <م> يجب مجموعة منهم alltogether. إن لم يكن، ربما عن خلل؟

وهم، وأتساءل عما إذا كان هؤلاء قد تم إصلاحها: http://dev.rubyonrails.org/ticket/2879 http://dev.rubyonrails.org/ticket/3353

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top