質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

0回答

1143閲覧

【rails】js.erbを使ったajaxがうまくいかない

kickthekaz

総合スコア29

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2020/07/15 05:49

rails6にて、ajaxとkaminariを使って、口コミ一覧の「もっと見る」機能を作りたいのですが、エラーでうまく出来ません。
ご助言いただけますと幸いです。。

状況)
こちらの記事を参考にして、進めてみましたが、エラーになってしまいます。

show.slim

slim

1.review_lists 2 = render 'reviews' 3= link_to_next_page @reviews, 'もっと見る', remote: true, id: 'more_link'

_reviews.slim

slim

1- @reviews.each do |review| 2 .review_list 3 .review_top 4 span #{review.name}さん 5 6 .review_review 7 p 評価:#{review.rating} 8 p 良いところ 9 p.review_review__comment = review.good_point 10 p 悪いところ 11 p.review_review__comment = review.bad_point 12 13 .review_time 投稿日時: #{review.created_at.strftime("%Y年%m月%d日 %H:%M")}

show.js.erb

js

1$(".review_lists").append("<%= j(render 'reviews') %>"); 2$("#more_link").replaceWith("<%= j(link_to_next_page @reviews, 'もっと見る', remote: true, id: 'more_link') %>");

controllers

rb

1 def show 2 @card = Card.find(params[:id]) 3 @reviews = Review.where(card_id: @card).page(params[:page]).per(3) 4 end

log

log

1Started GET "/cards/1?page=2" for ::1 at 2020-07-15 14:41:27 +0900 2Processing by CardsController#show as JS 3 Parameters: {"page"=>"2", "id"=>"1"} 4 Card Load (0.5ms) SELECT `cards`.* FROM `cards` WHERE `cards`.`id` = 1 LIMIT 1 5 ↳ app/controllers/cards_controller.rb:8:in `show' 6 Rendering cards/show.js.erb within layouts/application 7 Review Load (0.7ms) SELECT `reviews`.* FROM `reviews` WHERE `reviews`.`card_id` = 1 LIMIT 3 OFFSET 3 8 ↳ app/views/cards/_reviews.slim:1 9 Rendered cards/_reviews.slim (Duration: 6.3ms | Allocations: 1869) 10 (1.0ms) SELECT COUNT(*) FROM `reviews` WHERE `reviews`.`card_id` = 1 11 ↳ app/views/cards/show.js.erb:2 12 Rendered cards/show.js.erb within layouts/application (Duration: 19.1ms | Allocations: 5731) 13[Webpacker] Everything's up-to-date. Nothing to do 14 Rendered _particals/_header.slim (Duration: 3.4ms | Allocations: 1290) 15 Table Load (0.6ms) SELECT `tables`.* FROM `tables` 16 ↳ app/views/_particals/_footer.slim:16 17 Public Load (0.4ms) SELECT `publics`.* FROM `publics` 18 ↳ app/views/_particals/_footer.slim:25 19 Status Load (0.3ms) SELECT `statuses`.* FROM `statuses` 20 ↳ app/views/_particals/_footer.slim:34 21 Mile Load (0.3ms) SELECT `miles`.* FROM `miles` 22 ↳ app/views/_particals/_footer.slim:42 23 Business Load (0.3ms) SELECT `businesses`.* FROM `businesses` 24 ↳ app/views/_particals/_footer.slim:51 25 Company Load (0.5ms) SELECT `companies`.* FROM `companies` 26 ↳ app/views/_particals/_footer.slim:59 27 Rendered _particals/_footer.slim (Duration: 22.7ms | Allocations: 9444) 28Completed 200 OK in 106ms (Views: 89.3ms | ActiveRecord: 4.5ms | Allocations: 29164) 29

エラー内容)

ブラウザのコンソールにて以下のエラーが出ております。

console

1VM602:1 Uncaught SyntaxError: Unexpected token '<' 2 at processResponse (rails-ujs.js:283) 3 at rails-ujs.js:196 4 at XMLHttpRequest.xhr.onreadystatechange (rails-ujs.js:264)

試した事)
別のアプリ(rails5.2)で、同様に「もっと見る」機能を作ったのですが、問題なく成功しました。

rails6では、エラーになるということは、
webpackにて何か調整が必要なのでしょうか??

ご教授いただけますと幸いです。

以上、よろしくお願いします!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問