# Chat Space 質問対応まとめ > [name=yasunamiura] > [time=Sun, Nov 10, 2019 2:04 PM] ## Javasript ### console上でUncaught ReferenceError: $ is not definedと出る 仮説: //require_tree. が一番下に書いていない →jqueryなどのgemが読み込まれていない状態で読み込まれてしまっていたのでエラーが起きている 理由 //requireは上から順番に読み込まれているから ### 自動更新でページごとにsetIntervalかけたいときの方法 その1:location path nameで正規表現を使う方法 その2:view /message/index.html.hamlでgroup_idのdata属性をつける ### なぜjquery_usjが必要なのか? jquery_usjはrailsとjqueryをつなぐものだから必要 https://github.com/rails/jquery-ujs ### インクリメンタルサーチ 追加済みユーザーを検索対象に入れない方法
https://qiita.com/daimaru6718/private/5c04ea44be28bb9c5029 ### インクリメンタルサーチ params[:keyword]が入っていない User.js(search.js)のajaxでのdataの記述に書く       data: { keyword: input } ### インクリメンタルサーチ(mooviを参考にしたときのエラー) ### controllerでbinding.pryしたらobject object = nullになる Ajaxで Datatype: false, false みたいな2行あるのでそれは必要ないので削除する ### インクリメンタルサーチで追加ボタンを押したときに3人追加される 原因;keyupのイベントの中に追加ボタンのイベントも書いてしまっていた →VSコードの左端の△を押すとどこまでfunctionでくくられているのか分かる ### 自動更新したい部分にif文をつけると動かなくなってしまう reloadMessageの変数の中にif文を書いていたので動かなかった 解決方法 If文をsetIntervalを呼び出す直前に記述すること ``` if (window.location.href.match(/\/groups\/\d+\/messages/)) { setInterval(reloadMessages, 5000); }  // 自動更新   if (location.pathname == `/groups/${groupId}/messages`) {     timerId = setInterval(reloadMessages, 5000);   } ``` ## グループ編集 ### Group編集機能でgroupのメンバーが表示されない Each文の後ろで -binding.pryをする 使えなかったらpry-railsのgemを入れる やること groups_controllerでset_groupに@groupの記述があるか Before actionで呼び出すことができるのか ## 画像投稿 画像が投稿されない場合のチェック方法 Minimagic Bundle list Imagemagic Brew list Rails sをする ## View ### 部分テンプレート名が変数名と違っている場合の渡し方 Render ="部分テンプレ", collection: @messages, as :'message' 部分テンプレート内で使う変数を変更する場合 collectionオプションを使用した場合、部分テンプレート内で使用する変数はオプションで指定した変数が「@hoges」であったらその単数形の「hoge」になります。
もし別の名前として変数を使いたい場合は下記のように記述。 `<%= render partial: 'hoge', collection: @hoges, as: "fuga" %>` https://www.pikawaka.com/rails/partial_template ## データベース(DB) ### Sequelproからindexされたカラムを見たい 構造か情報からindexされたカラムを見ることができる ### Pending::Migration Error 原因 消してしまったmigrationファイルがあるから新しいmigrationファイルを実行したかった 解決策 Rails db:migrate:resetをする このコマンドはdrop rest migrateすべてを実行してくれる rake db:resetは全てのテーブルを dropし、"db/schema.rb"を元にテーブルの再作成を行うのでsequelproから手動でデータベースを消さないとできなかった 参考記事 https://qiita.com/Atsushi_/items/a230fb7f624d1eebf2f3 ### データベースに2回同じ文章が違うidで保存される 原因 form_forにremote :trueが記述されていた https://qiita.com/kamelo151515/items/e7c2225dc19936a31756 Remote :trueはform_withのオプションで submitボタンを押したときに Ajaxでリクエストを送ることができる 今回はHTMLでリクエストを送ることができていないため Message.jsの prevent.Defaultが機能していなかったため Ajaxのリクエストが2回送信されることになっていた ## デバック ### 500エラー(サーバーエラー)のデバック 検証で「Network」にエラーが出ているので詳しく見る 一覧で表示されているのでそこにサーバーエラーが出ている