0
私はacts_as_votable
宝石を使用しており、投票に問題があります。Acts_As_Votableは他のユーザーの投稿に投票できません
私は2つのモデルがあります - ユーザと投稿。ユーザーは投稿に投票することができます。
私が抱えている問題は、ユーザーが現在自分の投稿でのみ投票できますが、他のユーザーの投稿では投票できないということです。
これは私が@posts.each
を行ってユーザーが自分の投稿のみにアクセスしているためだと思うので、自分の投稿のみに投票することができます。または、コントローラのインデックスメソッドに問題があります。
Index.html.erbファイル:
<% @posts.each do |post| %>
<div class="user-input">
<% if post.user.voted_up_on? post %>
<%= link_to unlike_post_path(post), method: :put do %>
<%= image_tag("/assets/like.png") %>
<% end %>
<% else %>
<%= link_to like_post_path(post), method: :put do %>
<%= image_tag("/assets/heart.png") %>
<% end %>
<% end %>
</div>
<% end %>
Posts_controller(関連方法):
def index
@posts = Post.includes(:user).order("created_at DESC") #Possible issue is here??
end
def like
@post.upvote_by current_user
redirect_to :back
end
def unlike
@post.unvote_by current_user
redirect_to :back
end
ルート:
resources :posts do
member do
put "like", to: "posts#like"
put 'unlike', to: 'posts#unlike'
end
end
誰かがなぜ自分の投稿だけに投票できるのか理解できるように助けてくれる人は、素晴らしい人だと思います。
@postsには、現在のユーザーのみが作成したすべての投稿または投稿が含まれていますか? –
@BalaKarthikは私のコントローラを見ますが、 '@posts = Post.includes(:user).order(" created_at DESC ")' –
はい、私は@postsに何が含まれているか知る必要があることを知りましたか? –