2016-04-07 1 views
0

J'ai une recherche que lorsque le chiffre d'un CPF afficher tous les résultats. Ok, mais je dois ce spectacle de cette façon: (Juste une personne et la quantité de contrats qu'il a) * Mon code est en portugais, désoléConsulter les valeurs de réplication sur le chiffre cpf

Name 
Registry 
CPF 
    Contract 1 ---- Show all contracts 
    Contract 2 -------- 
    Contract 3 ----------- 

Mais il est actuellement vient donc: (Le mêmes valeurs en fonction du montant du contrat)

Name 
Registry 
CPF 
    Contract 1 ---- Show all contracts 
    Contract 2 -------- 
    Contract 3 ----------- 

Name 
Registry 
CPF 
    Contract 1 ---- Show all contracts 
    Contract 2 -------- 
    Contract 3 ----------- 

Name 
Registry 
CPF 
    Contract 1 ---- Show all contracts 
    Contract 2 -------- 
    Contract 3 ----------- 

Il est reproduit des valeurs ... parce que le numéro de contrat

Mon opinion est la suivante: 01

<% if params[:pesquisa_func_cpf].present? %> 
    <h4><b>Resultados</b></h4> 
    <% @autorizacoes.each do |autorizacao| %> 
    <table class="table table-condensed"> 
     <tr> 
     <th>Name</th> 
     <td><%= autorizacao.employee.person.name %></td> 
     </tr> 
     <tr> 
     <th>Registry</th> 
     <td><%= autorizacao.employee.registry %></td> 
     </tr> 
     <tr> 
     <th>CPF</th> 
     <td><%= autorizacao.employee.person.cpf %></td> 
     </tr> 
    </table> 
    <hr /> 
    <table class="table table-condensed table-bordered"> 
     <th>Contract number</th> 
     <% @autorizacoes.each do |autorizacao| %> 
     <td><%= autorizacao.number_contract %></td> 
     <% end %> 
    </table> 

    <% end %> 
<% end%> 

Dans c'est mon contrôleur:

si params [: pesquisa_func_cpf] .présentent? @autorizacoes = Autorizacao.pesquisa_func_cpf (params [: pesquisa_func_cpf]) tous

je tente le .distinct au lieu de .tous, mais ne fonctionne pas. (

Et mon consult (je l'utilise oracle), est-il:.

select * from autorizacoes INNER JOIN employers ON employers.id = autorizacoes.employer_id 
          INNER JOIN people ON employers.person_id = people.id 
          WHERE people.cpf LIKE '111.111.111-11' 

Et il retourne 3 résultats, selon mon exemple S'il vous plaît, comment faire il suffit de laisser cette structure:

Name 
Registry 
CPF 
    Contract 1 ---- Show all contracts 
    Contract 2 -------- 
    Contract 3 ----------- 

Répondre

0

Je l'ai dans mon contrôleur je viens ceci:

if params[:pesquisa_func_cpf].present? 
     @employers = Employee.pesquisa_cpf(params[:pesquisa_func_cpf]).all 
     @autorizacoes = Autorizacao.pesquisa_func_cpf(params[:pesquisa_func_cpf]).all 

Et moi je supprimer <% = autorizacao.employee.person.name%> et mettre <% = employee.person.name%>

Juste cela et ça marche!