У меня есть приложение, которое позволяет, чтобы пользователи создали вопросы, создали ответы на вопросы, и 'как' ответы других. То, когда current_user приземляется на/views/questions/show.html.erb странице, я пытаюсь отобразиться, общему количеству 'нравится' за все, отвечает на тот вопрос для current_user.
В моей таблице Likes я собираю 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
Который дает ошибку 'неопределенного метода 'вопрос'
You have liked this question <%= @question.current_user.likes.count %> times
Который дает ошибку 'неопределенного метода 'current_user'
Я попробовал несколько других вещей, но они не имеют столько же смысла сколько вышеупомянутое мне. Что я пропускаю?
Вы можете использовать:
<%= @question.likes.count :conditions => {:user_id => current_user.id} %>
Или:
<%= current_user.likes.count :conditions => {:question_id => @question.id} %>
Или добавить область видимости к Как
модель:
named_scope :owner, lambda {|user| {:conditions => {:user_id => user.id} } }
И назовите ее:
<%= @question.likes.owner(current_user).count %>