2016-08-11 5 views
0

Ich habe einen Code, der durch jeden Bieter durchlaufen und versucht, ein Eingabefeld für den Besitzer der Zuordnung zu erstellen, um den Status des jeweiligen Gebots von jedem einzelnen Bieter zu aktualisieren.Ruby on Rails Einzelformular zum Aktualisieren mehrerer Datensätze mit Schleife

<div id="titlebar" class="single submit-page"> 
 
    <div class="container"> 
 

 
    <div class="col-lg-10"> 
 
     <h2><i class="fa fa-bell"></i> Bidders</h2> 
 
    </div> 
 

 
    <!-- <div class="col-lg-2"> 
 
     <br> 
 
     <button type="button" class="btn btn-primary btn-lg"> 
 
      <i class="fa fa-list-alt"></i> Find Assignments 
 
     </button> 
 
    </div> 
 
    --> 
 
    </div> 
 
</div> 
 

 
<div class="container"> 
 
    
 
    <!-- Table --> 
 
    <div class="col-lg-12"> 
 

 
    <p class="margin-bottom-25"> Bids can be viewed or removed below.</p> 
 

 
    <table class="manage-table resumes responsive-table"> 
 

 
     <tr> 
 

 
     <th><i class="fa fa-genderless"></i> Gender</th> 
 
     <th><i class="fa fa-clock-o"></i> Experience</th> 
 
     <th><i class="fa fa-graduation-cap"></i> Education Level</th> 
 
     <th><i class="fa fa-money"></i> Expected Salary</th> 
 
     <th><i class="fa fa-file-text"></i> Status</th> 
 
     <th></th> 
 
     </tr> 
 

 
     <!-- Item #1 --> 
 
     
 
     <tbody> 
 
     <% @bidders.each_with_index do |bidder, i| %> 
 
      <tr> 
 
      <% if bidder.gender == 1 %> 
 
      <td>Male</td> 
 
      <% else %> 
 
      <td>Female</td> 
 
      <% end %> 
 

 
      <td><%= bidder.experience %></td> 
 
      <td><%= bidder.education.education %></td> 
 
      <td><%= bidder.expected_salary %></td> 
 
      <td><%= bidder.bid.status %></td> 
 
      <%= form_for(@bids[i]) do |f| %> 
 
      <td><%= f.label :status %> and <%= f.text_field :status %></td> 
 
      <% end %> 
 
      <td class="action"> 
 
      <a href="#"><i class="fa fa-eye-slash"></i> Hide</a> 
 
      <a href="#" class="delete"><i class="fa fa-remove"></i> Delete</a> 
 
      </td> 
 
     </tr> 
 

 
     <!-- Item #1 --> 
 
     <% end %> 
 
     </tbody> 
 
     
 
    </table> 
 

 
    </div> 
 

 
</div>

application_controller.rb:

def bidders 
    bidders_ids = Bid.where(bidders_params).pluck(:user_id) 
    @bidders = User.where(id: bidders_ids) 
    @bids = Bid.where(bidders_params) 
end 

bids_controller.rb:

def bid_params 
    params.require(:bid).permit(:status, :assignment_id, :user_id) 
    #params.permit(:status, :assignment_id, :user_id) 
    end 

Das Problem ist, dass die Schleife mehrere Formulare erzeugt.

  1. Ich möchte nur eine Form, aber mehr Dropdown Wählen Sie die Option 1..x abhängig von der Gesamtzahl der Bieter auf dieser besonderen Aufgabe für die Tabelle zu.

  2. Ich möchte sicherstellen, dass, sobald ich auf die Schaltfläche senden (die ich nicht enthalten), alle multiple: Statusfelder in der Datenbank in ihren jeweiligen Datensätzen aktualisiert werden.

+0

Haben Sie brauchen so etwas wie x-editierbare [Demo link] (https ändern: // vitalets. github.io/x-editable/demo-bs3.html) –

+0

https://github.com/werein/x-editable-rails –

Antwort

0

So etwas ähnliches?

x editierbar wird ein Formular mit Remote-true erstellen für jedes Attribut wollen Sie

enter image description here

+0

Ja, so etwas. Aber ich brauche es, um mit der Datenbank verbunden zu werden. Mit anderen Worten, dieses Formular muss eingereicht und auf die Tabelle aktualisiert werden. Wie kann ich das machen? – Benjamin

+0

bitte für weitere Informationen http://railscasts.com/episodes/302-in-place-editing –

+0

Vielen Dank! Sieht nach etwas aus, nach dem ich suche. Ich werde es versuchen! – Benjamin