2015-06-25 3 views
-1

Я зацикливание через некоторые пункты, названия должны быть понятны:Рубин цикла - определение значения

<% [@in_force_item, @draft_item, @historical_items].compact.flatten.each do |item| %> 
     <tr> 
     <td> 
      <label><input class="select" type="checkbox" /></label> 
     </td> 
     <td> 
      <% if item == @draft_item %> 
      <div> <%= link_to('', edit_account_item_path(@account, @draft_loa_item), class: 'black-icon-color') %></div> 
      <% else %> 
        <i class="lock"></i> 
       <span class='black-icon-color'></span> 
      <% end %> 
     </td> 
     <td> 
      <% updated_at = datetime_to_string item.updated_at %> 
      <%= link_to(updated_at, account_item_path(@account, item)) %> 
     </td> 
     <td><%= lifecycle_label(item) %></td> 
     </tr> 
    <% end %> 

линия у меня возникли проблемы с проверяет, если элемент является проект.

<% if item == @draft_item %> 

Это не работает, и я не уверен, как это сделать. Нужен ли мне метод в моей модели Item, чтобы проверить, есть ли его проект или нет?

Как я могу это достичь?

Edit: модель имеет следующее:

COMPOSITE_DRAFT = [LIFECYCLE_DRAFT_NUM, LIFECYCLE_RETURNED_NUM] 
LIFECYCLE_DRAFT_NAME = 'Draft' 
LIFECYCLE_DRAFT_NUM = 0 
LIFECYCLE_RETURNED_NAME = 'Returned' 
    LIFECYCLE_RETURNED_NUM = 2 

поэтому я должен быть в состоянии использовать что-то вроде:

item.lifecycle_num.???? 
+1

Когда вы говорите «Это не похоже на работу» - какова ваша текущая проблема? –

+0

Извините, что я неправильно использовал значение в базе данных - я попросил закрыть это – user3437721

ответ

0

Ваших вопросов должны иметь состояние, - таким образом, вы были бы в состоянии вызовите метод item.draft?, а также вам не понадобятся три отдельные переменные экземпляра. Для получения дополнительной информации, пожалуйста, проверьте драгоценный камень aasm.

0

Предполагая, что все три являются объекты ActiveRecord, вы можете проверить item.id == @draft_item.id

0

Как я понял, каждый из '@in_force_item, @draft_item, @historical_items' является массив тоже. Да?

Следовательно, когда вы делаете [@in_force_item, @draft_item, @historical_items].flatten в результате, вы получаете новый массив с элементами из массивов @in_force_item, @draft_item, @historical_items. Массив «@draft_item» отсутствует в этом новом массиве, но «элементы этого» присутствуют.

Таким образом, Вы могли бы написать:

<% if @draft_item.include? (item) %> 
Смежные вопросы