मैं सरल सबमिट में अपने सबमिट बटन का डिफ़ॉल्ट व्यवहार बदलना चाहता हूं ताकि मुझे स्पष्ट रूप से निर्दिष्ट नहीं करना चाहिए: disabled_with => मेरे सभी रूपों के लिए सच है। मैं simple_form.rb में यह विशेष परिवर्तन कैसे कर सकता हूं?simple_form सबमिट करने के लिए डिफ़ॉल्ट अक्षम_with
6
A
उत्तर
3
इस ओवरराइड को मेरे simple_form.rb में जोड़ना एक आकर्षण की तरह काम करता है!
SimpleForm::FormBuilder.class_eval do
def submit_with_override(field, options = {})
submit_without_override(field, {:disable_with => 'saving...'}.merge(options))
end
alias_method_chain :submit, :override
end
5
यह रेल के नए संस्करणों में थोड़ा अलग है, क्योंकि संपत्ति को अक्षम करने के साथ अक्षम_with को हटा दिया गया है। http://www.railsonmaui.com/blog/2014/02/23/simple-form-and-disable-processing-by-default/
यहाँ नए कोड है::
SimpleForm::FormBuilder.class_eval do
def submit_with_override(field, options = {})
data_disable_with = { disable_with: 'Processing...' }
options[:data] = data_disable_with.merge(options[:data] || {})
submit_without_override(field, options)
end
alias_method_chain :submit, :override
end
और धन्यवाद विचार के लिए @Appster लिए मैं इस पर एक लेख लिखा था!
2
ActionView::Helpers::FormBuilder.submit के अनुसार, f.button
1 ~ 2 पैरामीटर accespts, इसलिए निम्नलिखित दोनों कोड काम किए जाने चाहिए।
f.submit "MyText", class: "my-btn"
f.submit class: "my-btn"
मेरे मामले में, फ़ाइल को प्रारंभ करने के लिए इस कोड जोड़ने ठीक काम किया।
SimpleForm::FormBuilder.class_eval do
def submit_with_override(value=nil, options={})
value, options = nil, value if value.is_a?(Hash)
data_disable_with = { disable_with: 'Processing...' }
options[:data] = data_disable_with.merge(options[:data] || {})
submit_without_override(value, options)
end
alias_method_chain :submit, :override
end
उम्मीद है कि यह मदद करता है।
0
यह सबमिट बटन जो रेल 5.
module DisableDoubleClickOnSimpleForms
def submit(field, options = {})
if field.is_a?(Hash)
field[:data] ||= {}
field[:data][:disable_with] ||= field[:value] || 'Processing...'
else
options[:data] ||= {}
options[:data][:disable_with] ||= options[:value] || 'Processing...'
end
super(field, options)
end
end
SimpleForm::FormBuilder.prepend(DisableDoubleClickOnSimpleForms)
मेरे लिए के साथ संगत है पर किसी भी मौजूदा डेटा- के गुणों को ओवरराइड नहीं किया था, यह कुछ बटन और नहीं अन्य लोगों के साथ काम करता है। विशेष रूप से, यह '<% = f.button:% सबमिट करें>' लेकिन नहीं, उदाहरण के लिए, '<% = f.button: बटन%>' क्या आप समझा सकते हैं कि यह कोड क्या कर रहा है, इसलिए मैं काम कर सकता हूं मैं अपनी खुद की सेटिंग्स tweak सकता है? – spume