ajaxを使って書いたリンクがおささりません
ajaxを使って書いたいいね(likeと定義)リンクがおささりません。リンクは画面上に表示されているのですが。
コードに問題があるのでしょうか?それともPCに必要なアプリケーションが導入されていないのでしょうか?
コードは、
likes_controller.rbが
class LikesController < ApplicationController
before_action :authenticate_user!
def like
@note = Note.find(params[:note_id])
like = current_user.likes.build(note_id: @note.id)
like.save
end
def unlike
@note = Note.find(params[:id])
like = current_user.likes.find_by(note_id: @note.id)
like.destroy
end
end
_like_links.html.erbが
<% if current_user.likes.find_by(note_id: @note.id) %>
<%= link_to 'いいね!を取り消す', unlike_path(@note.id), method: :delete, remote: true %>
<% else %>
<%= link_to 'いいね!', like_path(@note.id), method: :post, remote: true %>
<% end %>
like.js.erbが
$('#like-link').html('<%= escape_javascript(render("likes/like_links", note: @note)) %>');
$('#like-count').html('<%= @note.likes.count %>');
unlike.js.erbが
$('#like-link').html('<%= escape_javascript(render("likes/like_links", note: @note)) %>');
$('#like-count').html('<%= @note.likes.count %>');
usersフォルダのshow.html.erが
<p id="notice" class="alert-success"><%= notice %></p>
<aside class="sidebar">
<section>
<span class="label">プロフィール画像</span>
<h3 class="user-info">
<%= image_for(@user) %>
</h3>
</section>
<section>
<span class="label">Name:</span>
<h3 class="user-info"><%= @user.name %></h3>
</section>
<section>
<span class="label">Email:</span>
<h3 class="user-info"><%= @user.email %></h3>
</section>
<%= link_to @user.likes.count, like_notes_user_path(@user.id) %>個の投稿にいいね!しています
<% if current_user?(@user) %>
<section>
<small><%= link_to "プロフィールを編集",edit_user_path(@user) %></small>
</section>
<% end %>
</aside>
<ul class="notes">
<h2><%= @title %></h2>
<%= render @notes %>
</ul>
notesフォルダのshow.html.erが
<p id="notice" class="alert alert-success">
<%= notice %>
</p>
<h2>今何してる?</h2>
<p><%= @note.content %></p>
<div id="like-link">
<!-- 送信先とmethodを指定してください -->
<%= render "likes/like_links", note: @note %>
</div>
<div>
<small>
<%= link_to @note.likes.count, liking_users_note_path(@note.id), id: "like-count" %>人がいいね!といっています
</small>
</div>
<% if current_user?(@note.user) %>
<%= link_to "つぶやく", edit_note_path(@note.id),class:"edit" %>
<%= link_to "削除", destroy_note_path(@note.id), method: "delete", class: "destroy", "data-confirm" => "本当に削除しますか?" %>
<% end %>
liking_users.html.erbが
<ul class='show-note'>
<%= render @note %>
</ul>
<h2 class="heading">いいねしているユーザー一覧 </h2>
<ul class='user-list'>
<!-- ここでパーシャルファイルを呼び出してください -->
<%= render @users %>
</ul>
です。
追加です。
いいね!ボタンが正常におささると、
「いいね!
0人がいいね!といっています」(いいね!と0人の所は押すことができます)
と表示されているところが、
「いいね!を取り消す
1人がいいね!といっています」(いいね!を取り消すと1人の所は押すことができます)
と変化します。
routes.rbには
Rails.application.routes.draw do
devise_for :users
resources :users, only: [:index, :show, :edit, :update,:like] do
member do
get :like_notes
end
end ←ここ
resources :notes, only: [:show, :create, :edit, :update, :destroy] do
member do
get :liking_users
end
end ←ここ
get'/top' => 'home#top'
get'/connection' => 'home#connection'
get'/notes/new' => 'notes#new'
post'/notes' =>'notes#create'
get'/notes' =>'notes#index'
get'/show/:id' => 'notes#show'
patch'/notes/:id' =>"notes#update",as:'update_note'
delete'/notes/:id' =>"notes#destroy",as:'destroy_note'
post '/like/notes/:id' => 'likes#like', as: 'like'
delete '/unlike/notes/:id' => 'likes#unlike', as: 'unlike'
root 'home#top'
get'/about' => 'home#about'
end
で←ここでしめした所が該当するルーターです。
お願いいたします。