- 1. Bulletがいつも正しいわけではない?!
- 2. [ 個人開発 ] simple_calendarを使用してカレンダー機能を実装する
- 3. はじめに
- 4. 開発環境
- 5. 【GPT✖️Rails】GPTのAPIをRailsで使ってみた
- 6. AWSインフラ構築時のエラー対処備忘録
- 7. link_toメソッドを使った範囲リンクとネストした個別リンクの実装方法
- 8. Rspecでsystem specを実行した際にブラウザが起動しなかったときの対処方法
- 9. RSpecでsystem specを実行するとOpenSSL::SSL::SSLError:が出るときの対処方法
- 10. Heroku(本番環境)のみエラー発生、開発環境は問題無し
- 11. エラーメッセージ「Rack::Multipart::MultipartTotalPartLimitError (Maximum total multiparts in content reached)」の対処法
- 12. 【Ruby】sub・gsub・tr で文字を置換しよう!(tr と gsub の相違点)
- 13. [ 個人開発 ] 画像上に自作アイコンを表示させ、投稿と紐付けて表示させる方法
- 14. はじめに
- 15. 開発環境
- 16. 完成物
- 17. 【個人開発】サウナ後のご飯「サ飯」の情報共有ができるアプリを開発しました。
- 18. Rails サーバーランチャーが見つかりません
- 19. Ruby 3.0.4 -> 3.2.2、Rails 6.1.0 -> 7.1.4の作業ログ
- 20. [個人開発] Geolocation APIを使って位置情報取得&比較する
- 21. はじめに
- 22. 開発環境
- 23. 完成物
- 24. Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
- 25. dev container + Rails + Postgres の設定
- 26. Railsのサーバ起動してDBがなかった話(db:create,rails: not found)
- 27. Railsのキー設定でつまづいた話(secret_key_base)
- 28. 【Rails7 とLaravel10】マイグレーションファイル・生成コマンド等 比較
Bulletがいつも正しいわけではない?!
この記事はプログラミング学習者がアプリ開発中に躓いた内容を備忘録として記事におこしたものです。内容に不備などあればご指摘頂けると助かります。
私は普段のプログラミング学習中にRailsのgemでN+1問題や不要なeager loading(includes)を検知してくれるBulletを使用しながらアプリの制作をしています。
自分でも気付き難いN+1問題などもありますので、普段は自動検知して教えてくれて助かっています。今回はそんなBulletが検知してくれるN+1問題や不要なincludesがどうやらいつも正しくはないようだ、との考えの基に記事を書いています。
まずは検知メッセージと実際のコードをご紹介します。
対象のeager loading(不要なincludes)検知メッセージ
![スクリーンショット 2024-09-13 13.19.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3508918/66e71273-d0cb-d454-8a51-e376edbda527.png)
[ 個人開発 ] simple_calendarを使用してカレンダー機能を実装する
はじめに
こんにちは!
個人開発アプリ「甲子園NOW!」作成時の実装内容の備忘録として記事をまとめています。
全体の内容の一覧は以下にまとめています。https://qiita.com/CarBoss1996/items/63c14260fc7fe65da78e
今回はその機能のうちの1つの simple_calendar についてまとめていきたいと思います。
⚠︎表示内容と保持しているデータがかなり多いので、デプロイ先のDBのCPUとストレージが足りなくてカレンダーが表示されない(502エラー)という事態になってしまいました。。。
なので就活中の現在のみ課金してなんとか表示できている状態です(汗)
renderのスターター[ 256MB ラム、100メートル CPU、1GB ストレージ ]にしたら表示されるようになりました(汗)
もし同じような実装をされる方がいれば、容量の多いデプロイ先とDBを探してから実装していったほうがいいかと思います。
そしてこの試合情報やイベントのデータはseeds.rbに手入力しています。開発環境
【GPT✖️Rails】GPTのAPIをRailsで使ってみた
# はじめに
こんにちは、エンジニア3年目の嶋田です。
この記事を開いていただきありがとうございます!今回の記事では、RailsアプリケーションでGPT APIを利用する方法についてまとめました。
AIがますます注目される中、GPT APIをアプリケーションに統合して自然な会話や高度なテキスト生成を行うことが可能です。この技術は、テキスト要約、質問応答、自然な会話生成などに応用できます。
今回は、私自身が業務で取り組んだ実装方法の一例を少し変えて、実例を用いながら
RailsアプリケーションにGPTを統合する際の基本的な実装方法を紹介していきます!私も実際に実装する上で勉強になったので備忘録としてまとめました。
参考にしていただければ幸いです。## 目次
– [GPT APIとは](#gpt-apiとは)
– [RailsでAPIを利用するための準備](#railsでapiを利用するための準備)
– [APIリクエストの実装](#apiリクエストの実装)
– [まとめ](#まとめ)## GPT APIとは
**GPT API**とは、OpenAIが提
AWSインフラ構築時のエラー対処備忘録
AWSインフラ構築時のエラー対処備忘録
ECSコンテナサービスを作成中、バックエンド(Rails、Nginx)のサービス作成時に発生したエラーについて記録します。具体的には、NginxのCloudWatchログに以下のエラーが発生しました。
“`
connect() to unix:///app/tmp/sockets/puma.sock failed (111: Connection refused) while connecting to upstream, client: 10.0.3.73, server: localhost, request: “GET /api/v1/health_check HTTP/1.1”, upstream: “http://unix:///app/tmp/sockets/puma.sock:/api/v1/health_check”, host: “10.0.4.4”
“`使用技術
・フロントエンド
UIフレームワーク:Nuxt.js(Vue.js), Vuetify
HTTP通信:axios
コード整形:ESLint/
link_toメソッドを使った範囲リンクとネストした個別リンクの実装方法
この記事はプログラミング学習者がアプリ開発中に躓いた内容を備忘録として記事におこしたものです。内容に不備などあればご指摘頂けると助かります。
#### link_toメソッドを使って範囲リンクと複数のlink_toをネストさせてそれぞれのリンクを設置する
この記事ではWebサービス(Xのクローンサイト)を作成中に遭遇したちょっとした壁?についてお伝えしています。
Webサービス上で他のページへのリンクを貼る際にlink_toメソッドは皆さんお使いになると思います。
以下はリンクのサンプル画像とサンプルコードです。
`ホーム`のところにカーソルを合わせてクリックすれば`root_path`へのリンクにアクセスできます。
![スクリーンショット 2024-09-12 20.18.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3508918/dcc486de-01ce-f2d8-0814-dc8595d1a56f.png)
“`ruby:_nav.html.slim
ul
Rspecでsystem specを実行した際にブラウザが起動しなかったときの対処方法
## 発生した問題
RSpecでsystem specを実行すると以下のようなエラーが出る。具体的には下記2つが発生
“`
Got 0 failures and 2 other errors:1.1) Failure/Error: visit root_path
Selenium::WebDriver::Error::SessionNotCreatedError:
session not created: Chrome failed to start: exited normally.
(session not created: DevToolsActivePort file doesn’t exist)
(The process started from chrome location /opt/google/chrome/chrome is no longer running, so ChromeDriver is assuming that Chro
RSpecでsystem specを実行するとOpenSSL::SSL::SSLError:が出るときの対処方法
## 発生した問題
RSpecでsystem specを実行すると以下のようなエラーが出る。“`
OpenSSL::SSL::SSLError:
SSL_connect returned=1 errno=0 state=error: certificate verify failed (unable to get local issuer certificate)
“`### 開発環境
– Rails 6.0.6.1
– Ruby 2.7.7
– rspec-rails 5.1.2
– webdrivers 5.3.1
– selenium-webdriver 4.9.0
– capybara 3.39.2### 前提
下記の記事によるとRuby,Railsのバージョンを上げて、selenium-webdriverの最新バージョンを使うのが正攻法のようです。
https://qiita.com/jnchito/items/f994dd3ac2cdc39bff8cですが今回は、受講している講座のバージョンに合わせたいため、バージョンを変えずに解決してい
Heroku(本番環境)のみエラー発生、開発環境は問題無し
この記事はプログラミング学習者がアプリ開発中に躓いた内容を備忘録として記事におこしたものです。内容に不備などあればご指摘頂けると助かります。
### 開発環境で機能を実装し終わって、いざHeroku(本番環境)へPushした時にエラーが発生しました。
NoMethodError in CommentsController#create
undefined method’parent_id=’ for #<保存しようとしたデータ>![Heroku デプロイ後のエラー画面.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3508918/328aad5d-6767-159f-7815-0f6e62cbf644.png)
このエラーが開発環境で出ていたら、空(Nil)のデータをcreate → save しようとしているのかな、ということでbinding.pry等でデバッグして変数内の値をチェックしてみよう等といった動きを取ろうと考えるのですが、既に開発環境では動作の問題が無いことを確認できていました
エラーメッセージ「Rack::Multipart::MultipartTotalPartLimitError (Maximum total multiparts in content reached)」の対処法
## はじめに
担当システムのブログ投稿機能がありまして、お客様からブログが投稿できないというお問い合わせをいただきました。投稿ボタンを押しても反応がないという風にご連絡をいただきました。原因調査のため、ブログの投稿ボタンを押した際、Chromeの開発者ツールのネットワークタブでレスポンスを確認したところ、500エラーで返却されておりました。さらに詳細な原因を特定するためにAWSのログを確認したところ、エラーメッセージ「Rack::Multipart::MultipartTotalPartLimitError (Maximum total multiparts in content reached)」に遭遇しました。
## 使用技術
Rails 5.1.6
Vue.js 2系
AWS(EC2、RDS、S3、Cloud Watch等)## 原因
担当システムのブログ機能にはカテゴリやタグを設定できます。ブログの投稿ボタンを押した際、フロントエンド→バックエンドへのパラメータに過去から現在まで作成していたタグを全て送信していたことが原因でした。
以下のコードでパラメータの
【Ruby】sub・gsub・tr で文字を置換しよう!(tr と gsub の相違点)
## 概要
subなどのメソッドを使用すると任意の文字を置換可能
stringのみ可能~~~ ruby
text = “今日はピクニックに行けなかった…”# 引数を指定することで文章を置換
text = text.sub(“行けなかった…”, “行った!”)p text
# result
“今日はピクニックに行った!”
~~~~~~ ruby
# 直接要素につけることも可能
p “hamburger”.sub(“burger”, “ster”)# result
“hamster”# Integerには不可能なので注意
p 4444444.gsub(4, 0)# result
=> : undefined method `gsub’ for 4444444:Integer (NoMethodError)
~~~## sub
**sub(第一引数, 第二引数)**
・初めに第一引数にマッチした文字列だけを第二引数の値に置換
・再代入必要~~~ ruby
text = “ハンターハンター”text = text.sub(“ハンター”, “
[ 個人開発 ] 画像上に自作アイコンを表示させ、投稿と紐付けて表示させる方法
はじめに
前回記事、[個人開発]Ruby on Railsで阪神ファンのためのアプリを開発しましたでのメイン機能 第2弾のアイコンの作成方法から表示方法についてまとめていきたいと思います。
第1弾の[個人開発] Geolocation APIを使って位置情報取得&比較するこれを実装済みという前提で進めていきます。開発環境
・ canva
・ remove.bg
・ Ruby on Rails 7.1.3.4
・ bootstrap 5.3.3完成物
【個人開発】サウナ後のご飯「サ飯」の情報共有ができるアプリを開発しました。
# はじめに
はじめまして![タク](https://x.com/sttk_91) と申します。
未経験からWebエンジニアへの転職を目指して、
働きながらプログラミングスクールで学習を続けております。この度、「[**サ飯の時間**](https://sameshi-time.com)」というアプリをリリースしました!
サウナ後のご飯「サウナ飯」、通称「サ飯」を記録・共有することで、**▶︎ サウナ愛好家の方へ**
「サ飯」を通して新しいコミュニティ
サウナ ⇨ サ飯のモデルコース**▶︎ サウナ初心者の方へ**
サウナへの新しい入り口を提供することを目指したCGMサービスです。
# サービス
![sameshi_ogp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3878469/28948717-44d8-2093-0bc0-48c00c42168a.png)
**開発期間:3ヶ月**サービスURL
https://sameshi-time.com
Githu
Rails サーバーランチャーが見つかりません
# RubyMineでデバッグしようとしたら「Rails サーバーランチャーが見つかりません」って怒られた話
こんにちは!今日は、RubyMineでRailsプロジェクトをデバッグしようとしたときに遭遇した問題と、その解決方法について共有したいと思います。
## こんな困ったことが…
デバックやりやすいと聞いたのでRubyMineに乗り換えたのにこんなエラーが出てきました!
“`
エラー: Rails サーバーランチャー ‘/プロジェクトの名前/bin/rails’ がプロジェクトに見つかりませんでした
“`「えっ、なんで?昨日まで普通に動いてたのに…」って感じで、ちょっと焦りました。
## 原因はこれだった
調べてみると、どうやらプロジェクトの`bin/rails`ファイルがどこかに消えちゃったか、うまく設定されてないみたいなんです。
このファイル、実はRailsアプリを動かすのに超重要な役割を果たしているんですよ。これがないと、RubyMineさんが「Rails、どこ〜?」って感じで迷子になっちゃうわけです。
## 解決方法はこれ!
さて、問題が分かったと
Ruby 3.0.4 -> 3.2.2、Rails 6.1.0 -> 7.1.4の作業ログ
# 基本手順
大変勉強になりました。ぜひご一読ください。https://qiita.com/jnchito/items/0ee47108972a0e302caf
## Gemfile更新
“`diff
source ‘https://rubygems.org’
git_source(:github) { |repo| “https://github.com/#{repo}.git” }– ruby ‘3.0.4’
+ ruby ‘3.2.2’# Bundle edge Rails instead: gem ‘rails’, github: ‘rails/rails’
– gem ‘rails’, ‘~> 6.1.0’
+ gem ‘rails’, ‘~> 7.1.4’
“`## Dockerfile更新
“`diff
– FROM ruby:3.0.4
+ FROM ruby:3.2.2# environment
ENV APP_ROOT /app
“`# トラブルシューティング
## bundle installでversion conflict発生
[個人開発] Geolocation APIを使って位置情報取得&比較する
はじめに
前回記事、[個人開発]Ruby on Railsで阪神ファンのためのアプリを開発しましたでのメイン機能である、位置情報の取得&比較についての記事を作成いたしました!
位置情報を取得するのはすでに素晴らしい記事があるので、そちらを参考にしていただければいいかなと思います!
Geolocation APIを使って現在位置を取得する開発環境
・asset pipeline ( webpackerは不使用 )
・esbuild完成物
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
# 必要なライブラリが足りない
“`
bundle install
…
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.
…
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
“`
# 原因
>This gem links against MySQL’s libmysqlclient library or Connector/C library, and compatible alternatives such as MariaDB. You may need to install a package such as libmariadb-dev, libmysqlclient-dev,
dev container + Rails + Postgres の設定
# dev containerの概要
devcontainerはVS CodeのDev Containersという拡張機能を使って立ち上げる、開発用のDockerコンテナです。**メリット**
– コンテナを立ち上げるだけで、同じ開発環境を再現することが出来る
– VS Codeの拡張機能も開発メンバーで統一することが出来る
VS Codeの拡張機能をdevcontainerを利用することで、統一することが出来ます。予め何の拡張機能をインストールするかを記載しておけるので、後から開発に参加した人が一々拡張機能をインストールしていくという手間が省けます。
– ローカル環境が汚れない
コンテナで開発環境を立ち上げるため、ホストマシンが汚れる事はありません。## 構築する開発環境
devcontainerの環境構築手順を書きます。
Rails × postgreSQLを使ってます。### 1. VS Codeの拡張機能のインストール
VS Codeの拡張機能で“`Dev Containers“`をインストールしてください。### 2. 開発したいアプリのディレクトリ作成
Railsのサーバ起動してDBがなかった話(db:create,rails: not found)
# Railsのサーバ起動してDBがなかった話
## 目次
– [前置き](#前置き)
– [本編](#本編)
– [要約](#要約)
# 前置き
前回はキー設定まで完了しました。
“`docker-compose up“`でサーバーを起動し直して、“`http://localhost:3000“`にアクセスしたところ、DBがないと言われました。
# 本編
DBがないなら、一旦サーバ閉じて起動しなおそう。
“`
$ docker-compose down –remove-orphans
$ docker-compose build
$ docker-compose run web rails db:create
“`
なんか変なの出てきた。
“`
[+] Creating 1/0
✔ Container todo_app-db-1 Running
/rails/bin/docker-entrypoint: line 13: exec: rails: not found
“`
docker-entrypoint…? ナニソレ。ん?どうしてrailsが
Railsのキー設定でつまづいた話(secret_key_base)
# Railsのキー設定でつまづいた話
### 目次
– [前置き](#前置き)
– [本編(右往左往してる風景)](#本編)
– [要約(解決手順)](#要約)
– [参考文献](#参考文献)# 前置き
前回は、Docker-compose + Rails + PostgreSQL で環境構築までしました。
今回はviewファイルを作って“`http://localhost:3000“`にアクセスして表示されてるか確認しようとしたところで、エラー発生。# 本編
“`$ docker-compose up“`を使ってサーバーを起動して…“`http://localhost:3000“`にアクセスしよっと。
ん?今エラーが見えたな…うわぁ…
“`
rails-1 | /usr/local/bundle/ruby/3.3.0/gems/railties-7.2.1/lib/rails/application/configuration.rb:519:in `secret_key_base=’: Missing `secret_key_base` f
【Rails7 とLaravel10】マイグレーションファイル・生成コマンド等 比較
## 前提
両者、postsテーブルを作成する想定で、title(string)カラムを持ちます。
## rails マイグレーションファイル生成コマンド
基本形になります
“`
rails generate migration CreateTableName
“`
postsテーブルを作成する場合“`
rails generate migration CreatePosts
“`Postモデルと同時にマイグレーションファイルを作成する場合(Laravelと異なり特別なことをせず、モデルを作ると自動でマイグレーションファイルも作成される)
“`
rails generate model Post
“`以下のようにカラムを指定し、作成することも可能
“`
rails generate model Post title:string
“`
## rails ロールバック(最後に実行されたマイグレーションを取り消す)コマンド
“`
rails db:rollback
“`## rails データベースをすべてリセットし、マイグレーションを再実行