2015-06-01 3 views
0

Я решил добавить некоторую статистику моего приложения в свой нижний колонтитул, поэтому я сделал то, что, по моему мнению, было проще, сделайте запросы на мой взгляд.Запрос в поле зрения - Rails

VIEW

<div>  
<h4>Quelques chiffres clés.</h4> 
     Nombre total des idées: <%= Idee.all.count %> 
     <br/>Nombre total des idées publiées:<%= Idee.where(statut_id: 1).count %> 
     <br/>Nombre total des idées en cours de traitement:<%= Idee.where(statut_id: 3).count %> 
     <br/>Nombre total des idées mises en place:<%= Idee.where(statut_id: 2).count %> 
    </div> 

Но ведь я не думаю, что это лучший способ сделать это, так что есть лучший способ сделать это? В моей модели? контроллер?

+0

Используйте контроллер, чтобы запросить свою БД и передать значение вашему представлению. –

+0

Вы никогда не запрашиваете непосредственно из представления, вы запрашиваете на стороне контроллера, а затем передаете его в представление. –

ответ

1

Footer доступен для всех и каждого зрения, так было бы лучше, чтобы добавить код в контроллер приложения, его не рекомендуется добавить запросы в представление, поэтому в вашем прикладном контроллере

before_filter :idee_counter 

def idee_counter 
    idee = Idee.select(:id, :statut_id) 
    @total_count = idee.size 
    @total_stat_1 = idee.where(statut_id: 1).size 
    @total_stat_3 = idee.where(statut_id: 3).size 
    @total_stat_2 = idee.where(statut_id: 2).size 
end 

Th en in view

<div>  
    <h4>Quelques chiffres clés.</h4> 
    Nombre total des idées: <%= @total_count %> 
    <br/>Nombre total des idées publiées:<%= @total_stat_1 %> 
    <br/>Nombre total des idées en cours de traitement:<%= @total_stat_3 %> 
    <br/>Nombre total des idées mises en place:<%= @total_stat_2 %> 
</div> 

Надеюсь, это поможет!

+1

Да, спасибо! Я уже пробовал это, но я забыл «before_filter», но теперь он работает –

0

В контроллере:

@idees = Idee.all 

на ваш взгляд:

<div>  
    <h4>Quelques chiffres clés.</h4> 
    Nombre total des idées: <%= @idees.count %> 
    <br/>Nombre total des idées publiées:<%= @idees.where(statut_id: 1).count %> 
    <br/>Nombre total des idées en cours de traitement:<%= @idees.where(statut_id: 3).count %> 
    <br/>Nombre total des idées mises en place:<%= @idees.where(statut_id: 2).count %> 
</div>