Сопоставьте и присоедините вычисленное значение in-view (Rails) - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть таблица, в которой продукту может быть назначено несколько номеров rfid_tag ​​для идентичных продуктов.В основной таблице это делается путем создания объединенного списка тегов для каждой таблицы и подробного описания в другом месте.Тем не менее, у меня есть расчетный набор значений ROI, которые я хочу перечислить аналогично rfid_tags.

<td>
  <%= product.rfid_tag_numbers %>
</td>   

<%product.rfid_tags.each do |tag| %>   
  <td>
    <%= number_with_precision((product.heritable_rental_price.to_f * tag.product_selections.length) / product.purchase_price.to_f, precision: 2) %> 
 </td>                                
<%end%>

rfid_tag_numbers определено в модели Product как:

belongs_to :ancestor_product, :class_name => "Product"

def rfid_tag_numbers
    rfid_tags.map{|rfid| "##{rfid.short_number}"}.join(", ")
end

Простого отображения расчета и объединения в отношении номеров тегов недостаточно.В его нынешнем виде он отображает список по одной ячейке за раз, что не является идеальным - что мне не хватает?

Попытка отображения # 1:

<%= rfid_tag.map{|item| number_with_precision((item.heritable_rental_price.to_f * rfid_tag.product_selections.length) / item.purchase_price.to_f, precision: 2)}.join(", ") %> 

1 Ответ

0 голосов
/ 30 ноября 2018

Внутри вашей модели, где вы определили rfid_tag_numbers, вы можете добавить новый метод, который копирует карту аналогичного типа:

def rfid_tag_numbers_with_precision
  rfid_tags.map { |rfid| number_with_precision((heritable_rental_price.to_f * rfid.product_selections.length) / purchase_price.to_f, precision: 2) }.join(", ")
end

Вы должны быть в состоянии назвать это, по вашему мнению,так же, как ваш другой метод:

<td>
  <%= product.rfid_tag_numbers_with_precision %>
</td>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...