Вы правы, он всегда будет возвращать false, потому что вы пытаетесь проверить, есть ли в массиве @quote_items объект строки
@quote_items.include?(line_item)
, что, очевидно, всегда будет ложным, поскольку ваш экземпляр @quote_items является массивом объектов QuoteItem, а экземпляр @line_items является массивом объекта LineItem. Так что они всегда разные объекты.
Я думаю, что в этой ситуации вы можете сравнить некоторые общие атрибуты quote_item и line_item. Например, если вы хотите сравнить атрибут имени, то
quote_item_names = @quote_items.map(&:name)
, а затем
<% if quote_item_names.include?(line_item.name) %>
line_item in quote item!
<% else %>
line_item NOT in quote item!
<% end %>