ヘルスケアwebサービスを自分で作る医者の日記~


methodオプションではHTTPメソッドの種類を指定します。何も指定しなければGETになる。

class LikesController < ApplicationController
  before_action :authenticate_user

  def create
    @like = Like.new(user_id: @current_user.id, post_id: params[:post_id])
    @like.save
    redirect_to("/posts/#{params[:post_id]}")
  end

  def destroy
    @like = Like.find_by(user_id: @current_user.id, post_id: params[:post_id])
    @like.destroy
    redirect_to("/posts/#{params[:post_id]}")
  end
<% if Like.find_by(user_id: @current_user.id, post_id: @post.id) %>
        <!-- 以下の1行をdestroyアクションへのリンクに書き換えてください -->
        <%= link_to("いいね!済み", "/likes/#{@post.id}/destroy", {method: "post"})%>
      <% else %>
        <%= link_to("いいね!", "/likes/#{@post.id}/create", {method: "post"}) %>
      <% end %>
post "likes/:post_id/create" => "likes#create"
  post "likes/:post_id/destroy" => "likes#destroy"

where メソッドは DBから探し、[]配列になる