Jak powinna wyglądać akcja do zapisania danych u wczesniej wybranych użytkowników?

Witam
Prosilbym o ukierunkowanie mnie, poniewaz nie za bardzo wiem jak zabrac sie za moj problem.
Potrzebuje zrobic formularz, ktory zapisze dane za jednym razem u kilku uzytkownikow.

Dzienniczek treningowy - trener po ulozeniu treningu wybiera u ktorych zawodnikow ma sie on zapisac. Po kliknieciu “zapisz” formularz wysyla dane i zapisuje je u konkretnych osob.

pozdrawiam

http://railscasts.com/episodes/165-edit-multiple

1 Like

http://railscasts.com/episodes/196-nested-model-form-part-1

Jeśli już polecamy Railscasty, to akurat tutaj najlepszy byłby ten o FormObjectach:
http://railscasts.com/episodes/416-form-objects
plus ew. ten o Service Objects (#398). I poczytanie o wzorcach Mediator albo Builder.

1 Like

Witam
Wielkie dzięki za podpowiedzi! W zasadzie chyba wiem jak powinno to wyglądać jednak nie potrafię wsadzić elementu tablicy :runner_ids pod zmienna :runner_id.

będę wdzięczny za pomoc!
pozdrawiam

trainings_controller.rb

   def index
       @runners = Runner.all
       @Training = Training.new
    end
    
    def proba
    
       @runners = Runner.find(params[:runner_ids])
       @runners.each do |a|
             Training.create(params.require(:training).permit(:name, **:runner_id** ))
        end
      redirect_to trainings_url
    end

index.html.erb

<%= form_tag proba_trainings_path, method: : put do %>
<table>
  <tr>
    <th></th>
    <th>zawodnik</th>
  </tr>
  <% @runners.each do |r| %>
    <tr>
      <td><%= check_box_tag "runner_ids[]", r.id %></td>
      <td><%= r.runner_name %></td>
    </tr>
  <% end %>
</table>

<%= fields_for @training do |f| %>
    <table>
 <tr>
      <td>
    <%= f.label :name %><br>
    <%= f.text_field :name %>
     </td>
      <td>
    <%= f.hidden_field :runner_id %>
  </td>
</tr>
</table>
  <% end %>

<%= submit_tag "Proba Training" %> 
<% end %>