コントローラーで定義されたメソッドをインデックス ページで使用する方法を知りたいです。ブログに「いいね」ボタンを実装しようとしています。
ポストコントローラー
def like
@post = Post.find(params[:id])
@post.like += 1
@post.save
end
すべての投稿が一覧表示されているインデックスで、このようなことを試してみました。
<% @posts.each do |post| %>
<tr>
<td><%= post.name %></td>
<td><%= post.created_at.strftime("%Y/%m/%d, %I:%M%p") %></td>
<td><%= post.view %></td>
<td><%= link_to 'like', like_post_path %></td>
<td>hate</td>
</tr>
<% end %>
コードを見て思いついたのですが、
<%= link_to 'make a new post', new_post_path %>
<%= link_to 'Edit', edit_post_path(post) %>
インデックスページのコントローラーのメソッドの使い方は
(postController のメソッド)_post_pathだと思っていたのですが、どうやら間違っていたようです。
undefined local variable or method `like_post_path'
同様に(投稿)も試しました。
私の最終的な目標は、この関数を ajax 関数にすることなので、次のような形式になると予想していました。
<% link_to_function 'like', like_post, remote: true %>
この場合、メソッド「like」を使用する正しい方法は何ですか?