Отображение счетчика для «лайков» current_user по «вопросу» в представлении questions / show.html.erb - PullRequest
1 голос
/ 21 мая 2010

У меня есть приложение, которое позволяет пользователям создавать вопросы, создавать ответы на вопросы и «нравится» ответам других. Когда current_user попадает на страницу /views/questions/show.html.erb, я пытаюсь отобразить общее количество лайков для всех ответов на этот вопрос для current_user.

В моей таблице лайков я собираю question_id, site_id и user_id, и у меня установлены соответствующие ассоциации между пользователем, вопросом, ответами и лайками. Я думаю, что мне просто нужно правильно назвать эту информацию, которую я не могу понять. Все нижеприведенное происходит на странице /views/questions/show.html.erb.

Я пробовал следующее:

    <% div_for current_user do %>
        You have liked this question <%= @question.likes.count %> times
    <% end %>

Возвращает все «лайки» для вопроса, но не фильтруется current_user

You have liked this question <%= current_user.question.likes.count %> times

Который выдает ошибку 'undefined method `question'

You have liked this question <%= @question.current_user.likes.count %> times

Который выдает ошибку 'неопределенный метод `current_user'

Я пробовал пару других вещей, но они не имеют такого большого смысла, как изложенные выше для меня. Чего мне не хватает?

1 Ответ

2 голосов
/ 21 мая 2010

Вы можете использовать:

<%= @question.likes.count :conditions => {:user_id => current_user.id} %>

Или:

<%= current_user.likes.count :conditions => {:question_id => @question.id} %>

Или добавьте область действия к Like модели:

named_scope :owner, lambda {|user| {:conditions => {:user_id => user.id} } }

И назовите это:

<%= @question.likes.owner(current_user).count %>
...