Hi - I’m wondering how to pass locals when doing a turbo stream update for a collection. Currently I’m loading an edit view via a modal for each item in the collection. Whenever I goto submit the form via the modal, I get the following error
ActionView::Template::Error (undefined method `to_key' for nil:NilClass
> Did you mean? to_query):
Partial that contains code to collection:
<%= turbo_stream_from "admin_course_courselocations" %>
<ul class="list row col-lg-12 course-sessions-list">
<%= turbo_frame_tag "admin_course_courselocations_list", class: "list row col-lg-12 course-sessions-list" do %>
<%= render partial: "admin/courselocations/sessions/session_item", collection: @course.courselocations, as: :courselocation %>
<% end %>
</ul>
Courselocation Model:
after_update_commit {
broadcast_replace_to "admin_course_courselocations", target: "admin_course_courselocations_list", partial: "/admin/courselocations/sessions/session_item", locals: { courselocation: @courselocation }
}
Edit View
<%= form_for([:admin, @courselocation], local: true, :html => {multipart: true, :id => "admin_#{dom_id(@courselocation)}"}) do |f| %>
...form fields...
<% end %>
Console Output Error:
ActionView::Template::Error (undefined method `to_key' for nil:NilClass
Did you mean? to_query):
1: <li id="<%= "admin_#{dom_id(courselocation)}" %>" class="card-container card-container-fill-ghost lg-pad-base-all col-lg-4 col-lg-margin lg-margin-base-bottom">
2: <%= render "admin/courselocations/sessions/session_card_location", courselocation: courselocation %>
3: <hr />
4: <%= render "admin/courselocations/sessions/session_card_instructors", courselocation: courselocation %>
Going this route seems to work just fine - not sure what I’m missing here?
<%= turbo_frame_tag "admin_course_courselocations", class: "list row col-lg-12 course-sessions-list" do %>
<%= render @course.courselocations %>
<% end %>