String concatetenation.. + vs <<

I think this would be much more readable flash[:success] = "Your payment has completed. Please contact #{@order.seller.name} (mobile: #{@order.seller.mobile_number}, email: #{@order.seller.email} )"

Colin

That s really odd, I think that writing like: flash[:success] = "Your payment has completed. Please contact #{@order.seller.name} (mobile: #{@order.seller.mobile_number}, email:

#{@order.seller.email} )" should interpolate it.

The only rule I know is that double quotes are the ones to use in string interpolation.

I hope you found the solution.

And please if you find it share it.

The operator << is better to add info into a variable. For example:

name = “”

name.object_id

=> 70341910843080

name << "Jhon "

name.object_id

=> 70341910843080

name << "Doe "

name.object_id

=> 70341910843080

Note that the object_id is always the same.

It’s not create a new object.

Now, let see this:

name = “”

name.object_id

=> 70341910594080

name += “John”

name.object_id

=> 70341910549640

name += " Doe"

name.object_id

=> 70341910514060

Note that always a new object will be created.

But if you wanna put a String with interpolation into a variable, how this:

flash[:success] = "Your payment has completed. Please contact #{@order.seller.name} (mobile: #{@order.seller.mobile_number}, email:

#{@order.seller.email} )"

I’ll do the same way that you, because I lost just a little performance, but my code would be cleaner.

Or you prefer:

flash[:success] = "Your payment has completed. Please contact "

flash[:success] << @order.seller.name

flash[:success] << "(mobile: "

flash[:success] << @order.seller.mobile_number

flash[:success] << ", email: "

flash[:success] << @order.seller.email

flash[:success] << “)”

flash[:success]

rsrs… Ruby is clean man. Your interpolation is the better way.

flash[:success] = "Your payment has completed. Please contact #{@order.seller.name} (mobile: #{@order.seller.mobile_number}, email:

#{@order.seller.email} )"