前提・実現したいこと
ブログがあり、ブログのコメントを自動更新で取得しようと思っております。
ブログのコメント画面に遷移すると、
コンソールとターミナルに下記のエラーが出てしまいます。
rails routesで blog_api_blogcomments GET /blogs/:blog_id/api/blogcomments(.:format) api/blogcomments#index {:format=>"json"}
と表示されているのでurlはapi/blogcommentsと記載しました。
ですがターミナルのエラーに
(No route matches [GET] "/blogs/api/blogcomments")
となってしまします。
お分かりになる方がいらっしゃいましたら、ご教授いただけたらと思います。
宜しくお願いいたします。
発生している問題・エラーメッセージ
ターミナル
Started GET "/blogs/api/blogcomments?id=12" for ::1 at 2020-05-13 11:57:23 +0900 ActionController::RoutingError (No route matches [GET] "/blogs/api/blogcomments"):
コンソール
Failed to load resource: the server responded with a status of 404 (Not Found)
該当のソースコード
blogcomment.js
jquery
1 var reloadBlogcomments = function(){ 2 var last_blogcomment_id = $('.blog--comments__box__comment:last').data("blogcomment-id"); 3 $.ajax({ 4 url: "api/blogcomments", 5 type: 'GET', 6 dataType: 'json', 7 data: {id: last_blogcomment_id} 8 }) 9 .done(function(blogcomments){ 10 if (blogcomments.length !== 0){ 11 var insertHTML = ""; 12 $.each(blogcomments, function(i, blogcomment){ 13 insertHTML += buildHTML(blogcomment) 14 }); 15 $('.blog--comments__box').append(insertHTML); 16 $('.blog--comments__box').animate({ scrollTop: $('.blog--comments__box')[0].scrollHeight}); 17 } 18 }) 19 .fail(function() { 20 alert('error'); 21 }); 22 };
api/controllers/api/blogcomments_controller.rb
rails
1class Api::BlogcommentsController < ApplicationController 2 def index 3 blog = Blog.find(params[:blog_id]) 4 last_blogcomment_id = params[:id].to_i 5 @blogcomments = blog.blogcomments.includes(:user).where("id > ?", last_blogcomment_id) 6 end 7end
route.rb
resources :blogs do resources :blogcomments, only: :create namespace :api do resources :blogcomments, only: :index, defaults: { format: 'json' } end