2015-12-31 55 views
1

我目前正在閱讀Rails教程手冊,並在最後一章中將Im添加到示例應用程序的簡單視圖。我通常敢善於發現我的錯誤,但在這種情況下,我不斷收到試圖呈現一個用戶的關注者和用戶遵循的視圖時出現以下錯誤:缺少在Rails中找不到的部分錯誤教程

ActionView::MissingTemplate 
(Missing partial users/_user with {:locale=>[:en], :formats=>[:html, :xml], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :jbuilder]}. 

當我看到在終端日誌它闡述了錯誤消息作爲這樣:

app/views/users/show_follow.html.erb:25:in `_app_views_users_show_follow_html_erb___427441195944621571_70028589061100' 
    app/controllers/users_controller.rb:75:in `followers' 

75行對應於跟隨render 'show_follow'以下單元發揮功能:

def followers 
    @title = "Followers" 
    @user = User.find(params[:id]) 
    @users = @user.followers.paginate(page: params[:page]) 
    render 'show_follow' 
    end 

和25行至render @users在show_follow.html.erb:

<% provide(:title, @title) %> 
<div class="row"> 
    <aside class="col-md-4"> 
    <section class="user_info"> 
     <%= gravatar_for @user %> 
     <h1><%= @user.name %></h1> 
     <span><%= link_to "view my profile", @user %></span> 
     <span><b>Microposts:</b><%= @user.microposts.count %></span> 
    </section> 
    <section class="stats"> 
     <%= render 'shared/stats' %> 
     <% if @users.any? %> 
     <div class="user_avatars"> 
     <% @users.each do |user| %> 
      <%= link_to gravatar_for(user, size: 30), user %> 
     <% end %> 
     </div> 
     <% end %> 
    </section> 
    </aside> 
    <div class="col-md-8"> 
    <h3><%= @title %></h3> 
    <% if @users.any? %> 
     <ul class="users follow"> 
     <%= render @users %> 
     </ul> 
     <%= will_paginate %> 
    <% end %> 
    </div> 
</div> 

我花了幾個小時尋找錯誤,但無濟於事。您的幫助將不勝感激!

回答

0

的錯誤是在這裏:

<%= render @users %> 

它試圖找到具有相同名稱的部分。要解決這個問題,您應該創建部分users/_user.erb.html,以便可以加載它。或者你應該專門命名要呈現的部分:

<%= render 'user_index', user_list: @users %> # As an example 
+0

謝謝Wes。我試圖在追隨者函數中呈現@users變量,該函數保存所有用戶以分頁形式進行操作。如何確保可以通過部分訪問這些用戶? – morales257

+0

通過將'@ users'變量傳遞給部分使用'user_list:@ users'(如我的示例所示)。這將使變量'user_list'可用於你的部分。 –

+0

解決了這個問題,但現在頁面呈現空白。我把它添加到<%user_list%>部分是不是正確的方式?原諒我,我是新來的部分! – morales257

0

我剛剛遇到了同樣的問題。我創建了意見的新的部分/ Users文件夾名爲「_user.html.erb」與此代碼:

<li> 
    <%= gravatar_for user, size: 52 %> 
    <%= link_to user.name, user %> 
    <% if current_user.admin? && !current_user?(user) %> 
    | <%= link_to 'delete', user, method: :delete, 
            data: { confirm: 'Are you sure?' } %> 
    <% end %> 
</li> 

爲我工作。