On page 152 @rubys does the hotwire in one way. Then on page 153 he creates
creatre.turbo_stream.erb
and add 2turbo_stream.replace ...
. I understand he is showing 2 ways of doing it. However I feel like I got confused. This is a chapter I have to read multiple times.
You are correct that I am showing two different ways of constructing a response. I would welcome any suggestions as to how this could be improved.
Can someone explain more about this sentence on page 152: “Since we followed the default naming conventions for the template, we don’t need to pass any arguments”. I know in rails we use a lot of conventions but this went over my head.
What I meant by that is that we don’t need to specify any arguments to render
, so in fact no calls to render are required. Compare this code with what it replaced to see what I mean:
render turbo_stream: turbo_stream.replace(
:cart,
partial: 'layouts/cart',
locals: { cart: @cart }
)
I’ll rework this paragraph.
On page 153 I got lost at this line:
format.turbo_stream { @current_item = @line_item }
, Where did@current_item
came from, where do we really use it? We don’t use it at our 2turbo_stream replace ...
It will be used by the rendering of the cart, which is done here:
<%= render partial: 'layouts/cart', locals: {cart: @cart} %>
I’ll add a sentence or two to explain why we are setting this value.