2012-12-27 22 views
16

मेरे पास है मेरे विचाररेल: simple_form: चेकबॉक्स संग्रह से एक खाली स्ट्रिंग हो रही

<%= f.input :role_names, as: :check_boxes, collection: @program.role_names %>

में निम्न कोड और जब भी मैं प्रपत्र मैं ["admin, "moderator", ""] की तरह मान कुछ मिल रहा है, लेकिन मैं प्रस्तुत की तरह कुछ उम्मीद कर रहा था ["admin, "moderator"], यह क्यों है?

इसके अलावा मैंने एक निरीक्षण तत्व बनाया, और उसी नियंत्रण समूह के भीतर अंतिम चेक बॉक्स के बाद <input name="user[role_names][]" type="hidden" value=""> टैग था। मुझे लगता है कि यह params[:user][:recipient_role_names] में अंतिम में जोड़ा जा रहा है।

मुझे इसे कैसे संभालना चाहिए? मुझे पता है कि मैं reject(&:blank?) कर सकता हूं लेकिन क्या params[:user][:recipient_role_names] पर क्लीनर तरीका है? मैं यह भी जानना चाहता हूं कि इनपुट तत्व क्यों जोड़ा जा रहा है? क्या यह साधारण रूप में एक बग है या मैंने कुछ गलत किया है?

अन्य जानकारी:

  1. simple_form मणि संस्करण: 3.2.8

उत्तर

16

यह एक रेल 'सुविधा है: 2.0.4

  • संस्करण रेल। आप इसे रेल 4 में अक्षम कर पाएंगे। आप इसके बारे में simple form issue #603 और Rails issue #5402

  • +0

    सही .. 5 मिनट में स्वीकार करेंगे .. कुछ समय बाधा .. अब स्वीकार नहीं कर सकते .. बीटीडब्ल्यू मुझे समझना अच्छा लगेगा क्यों .. क्या आपको कोई विचार है कि यह रेल की विशेषता क्यों है? मेरा मतलब है कि उन्होंने यह सुविधा क्यों बनाई? और क्या यह किसी और चीज को ठीक करना चाहिए, अगर ऐसा है तो वह क्या था? यह बहुत अच्छा होगा अगर आप इसके बारे में थोड़ा सा समझा सकते हैं .. अग्रिम में thx .. – n00b

    +2

    आप यहां स्पष्टीकरण पढ़ सकते हैं http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-check_box (यह गोचा अनुभाग है) –