2009-01-20 15 views
12

मैं रेल एप्लिकेशन लिखने की कोशिश कर रहा हूं जो आपको एक निश्चित पृष्ठ पर जाने देता है, कहें/व्यक्ति/आईडी। इस पृष्ठ पर यह उपलब्ध संसाधनों का एक सेट दिखाता है। मैं चाहता हूं कि प्रत्येक संसाधन के पास एक बटन हो, जो उस व्यक्ति को संसाधन प्रदान करता है (आवंटन मॉडल का एक नया उदाहरण बनाकर।) एक विस्तार के रूप में, मुझे प्रत्येक संसाधन द्वारा कई बटन चाहिए, जो आरक्षण रद्द करते हैं और करते हैं अन्य बातें। मैं कुछ बटनों के साथ डेटा इनपुट करना भी पसंद करूंगा, उदा। संसाधन के कुछ% आवंटित करने के लिए।रेल में एकाधिक सबमिट बटन/फॉर्म

मेरी समस्या यह है कि मैं खुद को दोहराने के बिना समझदारी से ऐसा करने के लिए काम नहीं कर सकता, या एक बहुत ही हैकी नियंत्रक होने के बिना। मैं सबमिट बटन (बटन पर पाठ) के मूल्य भाग, या किसी भी जावास्क्रिप्ट का उपयोग करके मिलान किए बिना ऐसा कैसे कर सकता हूं?

इसके अतिरिक्त, यदि आपके पास किसी पृष्ठ पर दो रूप हैं, तो आप इसे कैसे सेट अप करते हैं ताकि कोई सबमिट बटन क्लिक होने पर दोनों रूपों पर परिवर्तन सहेजे जा सकें?

उत्तर

1

सूची में प्रत्येक पंक्ति को एक फॉर्म बनाएं और आइटम के बारे में जानकारी को प्रश्न में रखें। बेशक, आपको प्रत्येक एक्शन के साथ पेज सबमिट और पुनः लोड करना होगा। इसके आस-पास एकमात्र तरीका बटन के बजाय चेकबॉक्स का उपयोग करना और इसे एक बड़ा रूप बनाना है - या जावास्क्रिप्ट का उपयोग करना।

अपने दूसरे प्रश्न के लिए, यदि आप सबमिट बटन रखना चाहते हैं तो दो "रूपों" को प्रभावित करते हैं, तो आपको उन्हें एक ही रूप का दोनों भाग बनाना चाहिए। यदि आपको आवश्यकता हो तो आप फ़ॉर्म पर एकाधिक सबमिट बटन प्राप्त कर सकते हैं। अन्यथा, आप गतिशील रूप से मूल रूप से मानों से भरे जावास्क्रिप्ट के साथ एक तीसरा रूप उत्पन्न कर सकते हैं - लेकिन यह सभी मामलों में काम नहीं करेगा (उदाहरण के लिए, फ़ाइल इनपुट)।

5

im jQuery का उपयोग कर, और यह मैं क्या किया है:

<script type="text/javascript"> 
    $(document).ready(function() { 

     $('#bulk_print').click(function(){ 
      var target = '<%= bulk_print_prepaid_vouchers_path(:format => :pdf) %>'; 
      $('#prepaidvoucher_bulk_print').attr('action', target); 
      $('#prepaidvoucher_bulk_print').submit(); 
     }); 

     $('#bulk_destroy').click(function(){ 
      var target = '<%= bulk_destroy_prepaid_vouchers_path %>'; 
      $('#prepaidvoucher_bulk_print').attr('action', target); 
      $('#prepaidvoucher_bulk_print').submit(); 
     }); 

    }); 
</script> 

<% form_tag '#', :method => :post, :id => 'prepaidvoucher_bulk_print' do %> 

your form details 

<button class="button" type="submit" id="bulk_print"> 
    <%= image_tag("web-app-theme/printer.png", :alt => "Print Selected Vouchers") %> Print Selected Vouchers 
</button> 

<button class="button" type="submit" id="bulk_destroy"> 
    <%= image_tag("web-app-theme/cross.png", :alt => "Delete Selected Vouchers") %> Delete Selected Vouchers 
</button> 

<% end %> 

विचार

क्लिक किया जाता है जो बटन पर आधारित है, मक्खी पर प्रपत्र कार्रवाई बदलने के लिए है
संबंधित मुद्दे