Я реализовал функцию votable, все работает хорошо, пока пользователь входит в систему, как только пользователь выходит из системы, я получаю следующую ошибку.
undefined method `voted_up_on?' for nil:NilClass
Мой индекс. html .erb
<p class="small-text float center ">
<% if current_user.voted_up_on?(startup) %>
<%= link_to '<i class="material-icons md-light">change_history</i>
</br>'.html_safe, downvote_startup_path(startup), method: :put %>
<small>votes: <%= startup.get_upvotes.size %></small>
<% current_user && current_user.voted_down_on?(startup) %>
<%= link_to '<i class="material-icons md-dark">change_history</i>
</br> '.html_safe, upvote_startup_path(startup), method: :put %>
<small>votes: <%= startup.get_upvotes.size %></small>
<% end %>
</p>
Мой контроллер
before_action :find_startup, only: [:show, :edit, :destroy, :update, :upvote, :downvote]
def upvote
@startup.upvote_from current_user
redirect_to @startup, notice: "Upvoted successfully!"
end
def downvote
@startup.downvote_from current_user
redirect_to @startup, notice: "downvoted successfully!"
end
Мои маршруты
resources :startups do
member do
put :upvote
put :downvote
end
resources :comments, only: [:create, :destroy]
end
Чего мне не хватает?