はしばみあきら blog

プログラミングアウトプットするブログ。202010スタート

Ruby on Rails

【Rails】多対多のデータを取得する時に`compute_type'というエラー

モデルに記述するhas_manyとbelongs_toの書き方を間違えていた。 モデル周りをしばらく触っていないとうっかり間違えるということがあるのでメモメモ。 has_manyは複数形、belongs_toは単数形 このルールをすっかり忘れていました。 thurough: のあとも複数…

【Rails】プルダウンを選んだと同時に保存する【jQuery】

rails で "collenction_select" を使った時に、プルダウンで選んだ瞬間に内容が保存されたらいいなぁ、と思ったのですがなかなか沼ったので書き留めておきます。 フォームを作る Railsドキュメントより f.collection_select(メソッド名, オブジェクトの配列,…

【Ruby】【Rails】自作カレンダーで、月や週を切り替える

昨日、今月1ヶ月の表示をするカレンダーを作成しました。 今回は、今月から見て翌月や先月、またはさらにその先の配列を取得できるようにしていきます。 前回のコードに付け足していくので、もしよかったらそちらもご覧下さい。 【Rails】【Ruby】Dateを使…

【Rails】プリコンパイル時のundefined method `[]' for nil:NilClass

デプロイしたアプリをローカルで更新し、AWSのEC2でプリコンパイルしようとした時にエラーが出ました アセット以下をEC2のアプリ上でプリコンパイル $ bundle exec rails assets:precompile RAILS_ENV=production すると、成功できずメッセージがでます [1/4…

【Rails】ActionCable AWS/Nginx/Pumaでデプロイする

前回作ったチャットアプリをAWSでデプロイしました ちょっと沼った部分もあったので書いていきます 環境 Rails 5.2.4 AWS EC2 Puma Nginx 条件として ローカルではちゃんと動作する 本番環境ではActionCable以外はしっかり表示される ActionCableの設定を行…

【Rails】ActionCableでチャットアプリ・グループや特定のユーザーとチャットする

前回、1からActionCableを用いたチャットアプリを作りました 現状ではチャットが全てのユーザーに対して送られているアプリです そのため、特定のユーザーとチャットしたり、または複数人でチャットしたりと言う機能を作っていきたいと思います 前回作ったア…

【Rails】ActionCableでチャットアプリを作る

LINEを作る過程でActionCableでかなり悩まされたので、アウトプットかつおさらいということで書いていきます 今回は簡単なチャットアプリケーションを作ろうと思います 初めてActionCableを触る!くらいの人にもなるべく分かるようにしていきたいと思います …

【Rails】条件に応じて日付の表示を判定する

LINEのトーク表示って何時何分とか、何曜日とか、古い物だと2020.xx.xxみたいな感じで表示されます あの部分を作ります 条件に応じて日付の表示を判定する 今日のメッセージなら xx:xx の表示 昨日〜1週間前までは x曜日 の表示 それ以前は 2020.xx.xx の表…

【Rails】groupメソッドとorderメソッドを一緒に使う

今回はSQLとのやりとりで沼った、groupとorderを一緒に使う時の注意をつらつらと書いていきます 現在の自身の環境です ruby 2.6.3p62 Rails 5.2.4.4 sqlはRailsのデフォルト gem 'sqlite3' あと、binding.pry大好き人間なので gem 'pry-byebug', group: :dev…

【RailsでLINEを作る】トーク内容の画面表示速度改善

友だちをクリックすると内容一覧を表示させるのですが、速度が恐ろしくかかる問題が発生しました 結論からすると N+1問題の改善 eachの中のrender この2つの影響で読み込み速度がかなり遅くなっていました 今回修正した部分をつらつらと書いていきます トー…

【RailsでLINEを作る】トークの画面をいい感じにしていく

前回の更新から少し空きました... というのも逆無限スクロールを実装しようとしてそれが終わったら更新しようと思ったのですが、想像以上にややこしかった 考え方はわかるんだけど、それをコードにする実力がまだない!悔しい! 今回はトークの画面をライン…

【RailsでLINEを作る】クリックでトークを表示させる

今日は恐ろしくやる気が出ず、ブログの更新だけになります... 昨日、一昨日で友だちをクリックしたときにトーク内容をJSで更新させるようにしました。 CSSをあまりいじってないので雰囲気だけ... 流れとして 友だち一覧を取得しeachで表示 ↓ 友だち1つ1つ…

【RailsでLINEを作る】ActionCableで特定のユーザーとリアルタイムチャット機能を作る.その2

前回はアクションケーブルを使ったリアルタイムチャット機能を実装しました。 ただ、今の状態だと、送ったチャットが、同じチャンネルに接続されている全てのviewに配信されます。 ユーザーidやルームidは保存されるのでリロードを挟めば消えるのですが、か…

【RailsでLINEを作る】ActionCableで特定のユーザーとリアルタイムチャット機能を作る

ルーム機能を作ったのでいよいよ作っていきます。 色々な記事を参考にして、大量に記事を未過ぎてどの記事を参考にしたかもうわからない程になりました... つらつらと掲載させていただきます。他にもaction cableと書いてあれば見るみたいな感じでやりました…

【RailsでLINEを作る】ルームを作る

※ちょっとエラーが出た部分があったので一部更新(2020/10/20) お久しぶりの更新です。 Rails の Action cable に大分時間がかかりました...難しい! 1週間かけて rails new して scaffold で実装できたので、いよいよ組み込んでいきたいと思います。 とはい…

【Rails】ActionCableを理解したい

LINEを作る上で避けて通れないと思ったActionCable ActionCableでチャットアプリを作ろう!という記事は多く見ますがどうしても理解ができるかと言われると難しいです 実際に rails new で作ってみたものの、開発中のアプリに組み込むとなると、???という…