我有一个注册和登录页面,其中包含一些来自已注册用户的图像。我有一个会话和用户控制器来分别登录和注册用户到我的应用程序。
会话控制器
def new
@users = User.last(3)
end
def create
user = User.find_by_email(params[:session][:email].downcase)
if user && user.authenticate(params[:session][:password])
sign_in user
redirect_back_or user
else
flash.now[:error] = "Wrong email/password combination"
render 'new'
end
end
然后我使用实例变量@user 来显示最近 3 个用户的图像。这也适用于我的用户控制器。我的slider
“新”观点有一部分
_slider.html.erb
<% for user in @users do %>
<div class="item">
<%= image_tag user.photos.first.image.url(:large) %>
<div class="carousel-caption">
<h4><%= user.name %></h4>
<p><%= user.tagline %></p>
</div>
</div>
<% end %>
这在注册和登录页面都可以正常工作,直到注册/登录表单包含错误。我得到这个错误undefined method 'each' for nil:NilClass
。我认为@user
渲染页面后该变量不可用。
重新渲染新操作后如何使其可用?或者我应该怎么做?谢谢