2016-03-28 8 views
0

こんにちは私は、ユーザーが自分のデータを友人データと比較することができました。 アコーディオンタブ内の友人データを表示するRuby on rails

は私が

(下記参照)のページを比較し、それが特定のユーザーを誘導することによって動作させるために管理しかし、今、私は外観を変えていると私は、「ページを比較する」アコーディオンタブ内で開くようにしたいです。

これは、users/show.html.erbにあるフレンドリストのコードです。現在のユーザーは、自分のデータをフレンドデータと比較できます。

<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> 

と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> 

、ここでは、パーシャルの一つのコードです...が、この場合electro_compare.html.erbに...すべてのパーシャルは、基本的にすべての場合と同じである必要があり異なるデータを比較するロジック。ここで

<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> 

が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 

ためのコードである。そして、タブ用のコードがある....私は、タブを開くアコーディオンを持っている....ときにタブ#10が開いています。タブ10のcompare.html.erbにコードを表示したいと思います。コードをcompare_users.html.erbという部分にコピーしましたが、機能しません。

<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> 

私はここで少し失われています。誰でも私を正しい道に導くことができますか?

答えて

0

まず、レールパーシャルにアンダースコアが必要なので、パーシャルは_compare_users.html.erbである必要があります。

また、すべてのコントローラコードをshowメソッドに移動する必要があります。

これでうまくいくはずです。

あなたは非常に大きなコントローラを持っており、プレゼンターを使用してそれを少しきれいにすることを考えたいと思うかもしれません。

これはあなたが行くことを望む!

幸福、 ショーン

関連する問題