Agile Web Development with Rails 7: [solved]

On page 152 @rubys does the hotwire in one way. Then on page 153 he creates creatre.turbo_stream.erb and add 2 turbo_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 2 turbo_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.