если запрос в представлениях с контроллером переменных экземпляра - PullRequest
0 голосов
/ 04 апреля 2011

Я снова застрял.

У меня есть этот код в моих / views /

<% if DistributionSheet.find(:all, :conditions => ["lifecycle_state = ?","closed"]).last %>
  <% @Specimen_ids.each do |ds| %>
 <th><%= ds.id %></th>
   <% end %>
 </tr>
 <tr>
  <% @all_results.each do |result| %>
   <td><%= result.distribution_sheet_id %></td><td><%= result.lab_id %></td><td><%= result.kit %></td><td><%= result.batch_number %></td><td><%= result.cutoff %></td>
  <% @Specimen_results.each do |sr| %>
  <td><%= sr.result_user %></td>
  <% end %>
  </tr>
   <% end %>
  <%- end -%>
  </tr>

В моем контроллере у меня есть:

    def first


  @Specimen_ids = Specimen.find(:all, :order => 'distribution_sheet_id DESC', :limit => 10)

  @all_results = Result.find(:all, :order => 'distribution_sheet_id DESC', :limit => 1)

  @Specimen_results = SpecimenResult.find(:all, :order => 'id DESC', :limit => 10)

  end
end

То, что я хочу, это сказать, только если LAST DistributionSheet «закрыт», а затем вывести данные, описанные выше ТОЛЬКО для этого закрытого DistributionSheet.

Приведенный выше код выводит данные, но для всего DistributionSheet. Первый, если statememnt, похоже, ничего не делает. Я надеюсь, что объяснил это. Если вам нравится больше объяснений, пожалуйста, скажите мне. Большое спасибо заранее.

1 Ответ

1 голос
/ 04 апреля 2011

Вы хотите:

if DistributionSheet.find(:all).last.lifecycle_stated == "closed"
  #code
end

Он отображает все таблицы DistrubtionSheets, потому что вы захватываете все записи, которые являются «закрытыми», и просто проверяете, не является ли последний элемент в этом массиве nil / false.

Вам нужен вышеуказанный код, потому что вы получаете все листы, а затем проверяете, действительно ли последний восстановленный лист закрыт, как указано, является желаемым результатом.

Два примечания:

1) Вы действительно не должны иметь вызовов DB в ваших представлениях.

2) Вы должны действительно ограничить свои результаты чем-то другим, кроме: все. Это вернет огромный набор данных, если у вас много записей в вашей БД.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...