当我尝试查看用户个人资料页面时,我收到上述错误。
这是我的show.html.erb代码:
<% provide(:title, @user.name) %>
<div class="row">
<aside class="span4">
<section>
<h1>
<%= gravatar_for @user %>
<%= @user.name %>
</h1>
</section>
</aside>
<div class="span8">
<% if @user.microposts.any? %>
<h3>Microposts (<%= @user.microposts.count %>)</h3>
<ol class="microposts">
<%= render @microposts %>
</ol>
<%= will_paginate @microposts %>
<% end %>
</div>
</div>
<%= render @microposts %>
导致问题。
答案 0 :(得分:6)
您是否在任何地方声明变量@microposts
?乍一看,看起来你应该做的是
<%= render @user.microposts %>
答案 1 :(得分:1)
我有同样的问题
是的,@microposts
在控制器show方法中声明为:
def show
@user = User.find(params[:id])
@microposts = @user.microposts.paginate(page: params[:page])
end
更新:我发现show动作定义了两次(其中一个定义了@microposts
)。要解决此问题,我只是删除了未定义show
的第二个@microposts
操作。我想知道不止一个人能够设法复制节目动作。