2016-03-28 5 views
0

Hallo Ich baue eine App, wo Benutzer ihre Daten mit Freunden Daten vergleichen können.Freunde zeigen Daten in Akkordeon Registerkarte Ruby auf Schienen

Ich konnte es zu einem bestimmten, indem den Benutzer funktioniert Seite vergleichen (siehe unten)

Aber jetzt das Aussehen Ich ändere und ich mag die „vergleicht Seite“ in dem Akkordeon Tab zu öffnen.

Also ... das ist der Code für die Freundesliste, es ist in der users/show.html.erb, dort kann der aktuelle Benutzer seine Daten mit Freunden Daten vergleichen.

<ul> 
      <% @user.friendships.each do |friendship| %> 
      <li> 
      <%= link_to user_profile_path(friendship.friend), :method => :get do %> 
       <%= friendship.friend.profile.name %> 
       (<span class="glyphicon glyphicon-erase"></span> <%= link_to "Destroy Friendship", friendship, :method => :delete %>)</li> 
       <li> 
       <%= link_to friendship do %> 

       <span class="glyphicon glyphicon-send"></span> <%= link_to 'Send Messages', new_message_path(to: friendship.friend.id) %> </li> 
       <li> 
       <%= link_to friendship do %> 

      <span class="glyphicon glyphicon-stats"></span> <%= link_to 'Compare', compare_friends_path(to: friendship.friend.id)%></li> 
       <% end %> 
      <% end %> 
      <% end %> 
      <% end %> 

     </li> 
     </ul> 

und die compare_friends_path

<div class="row"> 

<%= render 'users/shared/paper_compare' %> 

<%= render 'users/shared/electro_compare' %>  

<%= render 'users/shared/hwater_compare' %> 

<%= render 'users/shared/cleaning_compare' %> 

<%= render 'users/shared/travel_compare' %> 

</div> 

und hier ist der Code für eine der partials ... in diesem Fall die electro_compare.html.erb ... alle partials sind grundsätzlich die gleichen wie in sie alle haben Logik zum Vergleichen verschiedener Daten. Hier

<div class="col-md-8 col-md-offset-1 well"> 
<h3>Compare Electricity</h3> 
    <div class="col-md-6"> 

     <table class="table table-hover table-box-compare "> 
      <thead> 
       <th>compare -Electricity</th> 
       <th><%= @user.profile.name %></th> 
       <th><%= current_user.profile.name %></th><br> 
      </thead> 
      <tbody> 
       <tr> 
        <td>Total Electricity</td> 
        <td><strong><%= @electro_total_user %> kwst </strong></td> 
        <td><strong><%= @electro_total %> kwst </strong></td> 
       </tr> 
       <tr> 
        <td>kwst á hvert stöðugildi</td> 
        <td> <strong><%= @electro_total_per_capita_user %> kwst </strong></td> 
        <td><strong><%= @electro_total_per_capita %> kwst </strong></td> 
       </tr>  
        <br> 
       <tr> 
        <td> kwst. f hvert stöðugildi</td> 
        <td> <strong><%= @electro_total_per_m2_user %> kwst/fm. </strong></td> 
        <td> <strong><%= @electro_total_per_m2 %> kwst/fm. </strong></td> 
       </tr> 


      </tbody> 
     </table>  
    </div> 

    <div class="col-md-6"> 
    Rafmagnsnotkun Samanburður við <%= @user.profile.name %> 
         <%= bar_chart [ 
          {name: "Rafmagnsnotkun #{@user.profile.name}", data: @electro_total_user, 'interpolateNulls':true}, 
          {name: "Rafmagn á hvert stöðugildi #{@user.profile.name}", data: @electro_total_per_capita_user, 'interpolateNulls':true}, 
          {name: "Rafmagnsnotkun #{current_user.profile.name}", data: @electro_total, 'interpolateNulls':true}, 
          {name: "Rafmagn á hvert stöðugildi #{current_user.profile.name}", data: @electro_total_per_capita, 'interpolateNulls':true} ] %> 
    </div> 
</div> 

ist der Code für die users_controller.rb

class UsersController < ApplicationController 




def index 
    @users = User.all 
@users = User.order('created_at DESC').paginate(page: params[:page], per_page: 30) 


end 

def create 

end 


def show 
    # @user = current_user 
    @user = User.find(params[:id]) 
    @users = User.order('created_at DESC').paginate(page: params[:page], per_page: 30) 
    #@electro_total = current_user.electros.sum(:electricity_kwst) 
    @paper = current_user.papers.build 
    @electro = current_user.electros.build 
    @hwater = current_user.hwaters.build 
    @cleaning = current_user.cleanings.build 
    @transport = current_user.transports.build 

    @papers = current_user.papers 


end 

def compare 
    if current_user.profile 
    #@user = User.find(params[:id]) 
    #@#users = User.friendships.friend(params[:id]) 
@user = User.find_by(id: params[:to].to_i) if params[:to] 

    @paper_weight_total_user = @user.papers.sum(:paper_weight) 
    @paper_weight_per_capita_user = @user.papers.sum(:paper_weight)/(@user.profile.staff) 
    @env_paper_weight_user = @user.papers.sum(:env_paper_weight) 
    @env_paper_ratio_user = (@env_paper_weight_user/@paper_weight_total_user) * 100 

    @paper_tree_ratio_user = (@user.papers.sum(:paper_weight)/1000) *15 
    @paper_tree_co2_rescue_user = @paper_tree_ratio_user * (0.492) 

    #Rafmagn 
     @electro_total_user = @user.electros.sum(:electricity_kwst) 
     @electro_total_per_capita_user = @user.electros.sum(:electricity_kwst)/@user.profile.staff 
     @electro_total_per_m2_user = @user.electros.sum(:electricity_kwst)/@user.profile.building_size 
    #HotWater  
     @hwater_total_m3_user = @user.hwaters.sum(:hot_water_cubic_meter) 
     @hwater_total_m3_per_capita_user = @user.hwaters.sum(:hot_water_cubic_meter) /@user.profile.staff 
     @hwater_m3_m2_ratio_user = @user.hwaters.sum(:hot_water_cubic_meter)/@user.profile.building_size 

    #Ræsting 
     @cleaning_total_user = @user.cleanings.sum(:cleaning_liter) 
     @cleaning_staff_ratio_user = @user.cleanings.sum(:cleaning_liter)/@user.profile.staff 
     @cleaning_building_ratio_user = @user.cleanings.sum(:cleaning_liter)/@user.profile.building_size 

    #Ferðalog-bilar 
     @transport_co2_km_user = @user.transports.sum(:transport_km) * (0.1404) 
     @transport_co2_km_staff_ratio_user = @user.transports.sum(:transport_km) * (0.1404)/@user.profile.staff 
     @transport_km_staff_ratio_user = @user.transports.sum(:transport_km)/@user.profile.staff 
     @transport_km_user = @user.transports.sum(:transport_km) 
    #Ferðalog-flug 
     @transport_flight_co2_user = @user.transports.sum(:transport_flight_km) * (0.1722) 
     @transport_flight_co2_staff_ratio_user = @user.transports.sum(:transport_flight_km) * (0.1722)/@user.profile.staff 
     @transport_flight_km_user = @user.transports.sum(:transport_flight_km) 
     @transport_flight_km_staff_ratio_user = @user.transports.sum(:transport_flight_km)/@user.profile.staff 

    #Co2 vegna ferðalaga 
     @co2_due_to_transport_user = (@transport_flight_co2 + @transport_co2_km)/1000 

     @tree_count_rescue_user = @co2_due_to_transport * 492  
else 
    redirect_to user_path 
end 
end 




end 

Und dann ist da der Code für die Registerkarten .... Ich habe ein Akkordeon, das die Registerkarten geöffnet .... Wenn Tab # 10 ist geöffnet Ich möchte in der Lage sein, den Code in der compare.html.erb in Registerkarte 10 anzuzeigen. Ich kopierte den Code auf eine teilweise compare_users.html.erb aufgerufen, aber es funktioniert nicht.

<div class="col-sm-12 col-md-12"> 
     <div class="well"> 
      <div class="tab-content"> 
       <div role="tabpanel" class="tab-pane active" id="tab1"> 
        <%= render 'conversations/msg_part' %> 
       </div> 
       <div role="tabpanel" class="tab-pane" id="tab2"> 
        <%= render 'users/shared/users_find' %> 
       </div> 
       <div role="tabpanel" class="tab-pane" id="tab3"> 
        <%= render 'users/shared/friends' %> 
       </div> 
       <div role="tabpanel" class="tab-pane" id="tab4"> 
        <%= render 'pages/partials/paper_part' %> 
       </div> 
       <div role="tabpanel" class="tab-pane" id="tab5"> 
        <div class="electro"> 
         <%= render 'pages/partials/electro_part' %> 
        </div> 
       </div> 
       <div role="tabpanel" class="tab-pane" id="tab6"> 
        <h1>Tab6</h1> 
       </div> 
       <div role="tabpanel" class="tab-pane" id="tab7"> 
        <div class="hwater"> 
         <%= render 'pages/partials/hwater_part' %> 
         </div> 
       </div> 
       <div role="tabpanel" class="tab-pane" id="tab8"> 
        <h1>Tab8</h1> 
       </div> 
       <div role="tabpanel" class="tab-pane" id="tab9"> 
        <h1>Tab9</h1> 
       </div> 
       <div role="tabpanel" class="tab-pane" id="tab10"> 
        <%= render 'users/shared/compare_users' %> 
       </div> 
      </div> 
     </div> 

Ich fühle mich hier ein bisschen verloren. Kann mich jemand auf den richtigen Weg führen?

Antwort

0

Zunächst einmal müssen Schienen Partials einen Unterstrich haben, so dass Ihr Teil sollte _compare_users.html.erb sein.

Sie müssen auch alle diese Controller-Code in Ihre Show-Methode verschieben.

Es sollte dann funktionieren.

Sie haben einen ziemlich großen Controller und Sie sollten vielleicht darüber nachdenken, einen Moderator zu verwenden, um es ein bisschen aufzuräumen.

Hoffe das geht dich!

Glück, Sean

Verwandte Themen