Нужна помощь в устранении этой ошибки - PullRequest
0 голосов
/ 26 марта 2011

Я получаю эту ошибку при входе в систему:

NoMethodError in Videos#index

Showing /rubyprograms/dreamstill/app/views/videos/_video.html.erb where line #3 raised:

undefined method `value' for nil:NilClass

Я не уверен, почему я получаю эту ошибку, потому что мое приложение раньше работало нормально ... Вот файл _video.html.erb. Строка 3 является причиной ошибки:

1: <%= div_for video do %>
2: <div class='voting_div'> 
3:   <%= link_to "&uArr;".html_safe, video_votes_path( :video_id => video.id, :type => "up" ), :method => :post, :remote => true, :class => "up_arrow round #{current_user && current_user.votes_for(video).value == 1 ? 'voted' : 'unvoted' }" %>
4:   <div id='vote_display' class = 'round'>
5:     <p id='votes'>
6:      <%= video.vote_sum %>

Как мне исправить эту ошибку? Какой код вы хотите, чтобы я опубликовал, чтобы это можно было устранить?

Ответы [ 2 ]

0 голосов
/ 26 марта 2011

Другое решение может быть таким:

<%= link_to "&uArr;".html_safe, video_votes_path( :video_id => video.id, :type => "up" ), :method => :post, :remote => true, :class => "up_arrow round #{current_user && current_user.votes_for(video).try(:value) == 1 ? 'voted' : 'unvoted' }" %>

0 голосов
/ 26 марта 2011

Вы получаете пустой ответ для current_user.votes_for(video).Кроме того, current_user.votes_for(video) подразумевает, что результатом будет коллекция, если это не так, я бы изменил ее на user#vote_for(video).

<%= link_to "&uArr;".html_safe, ... :class => "up_arrow round #{current_user && (vote = current_user.votes_for(video)) && vote.value == 1 ? 'voted' : 'unvoted' }" %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...