[アラフォプログラミング未経験]Railsで非同期通信「Ajex」を動かしてみました
以前作成していましたpictweetに非同期通信「Ajex」を組み込むカリキュラムに突入しました。
少し前に「Ajex」(エイジャックス?アジャックス?)についてやってみましたが、
まあ例によってよくわかってないわ、覚えてないわ、
で、もう一度復習しながら、進めていくといういつも感じでやっております。。。
目次
APIの作り方
APIの機能をRailsに追加する時には、大きく分けると以下の3つの方式があります。
HTMLを返すためのコントローラーを共用してAPIとして使えるようにする
手軽にAPIを追加できる
API専用のコントローラーを作成する
APIの機能が大きくなるとコントローラを分けてコードの見通しを良くしたくなる
pictweetに実装
ひと通りおさらいしたので、早速pictweetに実装していきます。
Gemfileの記述を確認しよう
Gemfileにjquery-railsが記載されているか確認しましょう。
pictweet/Gemfile
>|javascript|
...
(中略)
...
# Use jquery as the JavaScript library
gem 'jquery-rails'
...
(中略)
...
|
記載されてにない場合は最下部に記載し、bundle installしてください。
確認すると記載されていたので、改めてbundleってみました。
おまけ
上記の作業後にスルスル先に進めてみると、
うん?
Ajexせずにいちいち更新してんじゃん!非同期してないじゃん!
ってことに気づき、consoleで止めてみてみると、
・Uncaught ReferenceError: $ is not defined
ってエラーが出て、怒られてました。
色々、ググって悪戦苦闘して1時間半、ようやく下記のサイトに辿り着いて解決。
→//= require_tree .を最後に読み込むようにして解決
https://qiita.com/bambis13s/items/0b0030578ecf7fd0af05
まじか、そんなことかー!!
ファーーーーー!!
でも、とりあえず解決してもやが晴れてよかった。。。