Rails

2009-01-20 21 views
12

Birden çok gönderme düğmeleri/formları Belirli bir sayfaya gitmenizi sağlayan bir ray programı yazmaya çalışıyorum,/kişi /: id. Bu sayfada bir dizi kullanılabilir kaynak gösterir. Her kaynağın yanında bir düğme olmasını isterim. Bu kaynak o kişiye o kişiyi ayırır (yeni bir Allocation modelinin bir örneğini oluşturarak). Bir uzantı olarak, her bir kaynağın birkaç düğmeyi olmasını isterim; diğer şeyler. Ayrıca, bazı düğmelerin yanı sıra veri girişi yapmak istiyorum. Bir kaynağın% 'sini ayırmak.Rails

Sorunum, kendimi tekrar etmeden veya çok hacky denetçisine sahip olmaksızın bunu nasıl mantıklı bir şekilde yapacağımı bilemem. Bunu, gönder düğmelerinin (düğmelerdeki metin) değer bölümünde veya herhangi bir javascript kullanarak eşleşmeden nasıl yapabilirim?

Ayrıca, bir sayfada iki form varsa, herhangi bir gönderme düğmesine tıklandığında her iki formda değişiklikler kaydedileceği şekilde nasıl kurarsınız?

cevap

1

Her satırı listedeki bir form haline getirin ve söz konusu öğeyle ilgili bilgileri buraya yerleştirin. Tabii ki, her eylemle sayfayı göndermeniz ve yeniden yüklemeniz gerekir. Bunun tek yolu, düğmeler yerine onay kutularını kullanmak ve bunu büyük bir form yapmak ya da Javascript kullanmaktır.

İkinci soruya gelince, bir gönderme düğmesinin iki "formu" etkilemesini istiyorsanız, bunların her ikisini de aynı formun bir parçası yapmalısınız. Gerekirse, formda birden çok gönderim düğmeniz olabilir. Aksi takdirde, orijinal formdaki değerlerle doldurulmuş Javascript ile dinamik olarak üçüncü bir form oluşturabilirdiniz - ancak bu her durumda çalışmaz (örn. Dosya girişleri).

5
jQuery kullanarak

im ve bu ne yaptım:

<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 %> 

fikri

tıklandığında hangi düğme dayalı anında form işlemini değiştirmektir