我有一个视图上有一个“赞”按钮。在它显示像按钮之前,它会检查用户是否已经喜欢它。这是“按钮”的代码。问题与检查current_user
<% if current_user.can_like_photo?(@photo) %>
<%= link_to "Like", :controller => "likes", :action => 'create', :method => "post", :id => @photo.id %>
<% else %>
<span class="caption">✓ Liked</span>
<% end %>
这工作正常; IF有一个current_user
。但是,如果你没有登录,它会吐出一个异常,因为没有current_user
。在页面加载之前捕获异常,而不是单击类似的链接;只是要清楚。这是我current_user
方法在我application_helper:
def current_user
User.find(session[:user_id])
end
是什么使这项工作如果没有current_user
登录的最佳方式?
啊,这为我工作。我不熟悉“救援”,但我会查找它。谢谢! –
如果记录不存在,find方法将引发ActiveRecord :: RecordNotFound异常。救援发现异常。由于执行的最后一行总是返回,所以出现错误。请参阅我的编辑以指定您正在捕捉的异常。 – Gazler