Rails関連のことを調べてみた

Rails関連のことを調べてみた
目次

[ 個人開発 ] 画像上に自作アイコンを表示させ、投稿と紐付けて表示させる方法

はじめに

前回記事、[個人開発]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 データベースをすべてリセットし、マイグレーションを再実行

元記事を表示

【個人開発】海外旅行初心者さん向けのサポートアプリを作成しました✈️

## はじめに

初めまして!
私はプログラミングスクールRUNTEQでRuby on Railsを学習しているもちと申します。
この度、卒業制作として **「Travel Starter」** というアプリを本リリースしました!
海外旅行が不慣れな人に向けて必要な情報を一元管理し、必要な準備のサポートをするサービスです。
アプリを使うことで、海外旅行に行く際の不安を軽減し、旅行のハードルを下げることを目指しています。

実は今回が初めてのQiita投稿です。卒業制作の記事はこちらで書きたいという入学時からの目標がありました。
読みづらい箇所もあるかと存じますが、ぜひご覧いただけると幸いです。

### サービスはこちら
https://adventure-travel-starter.com/

### GitHubリポジトリ
https://github.com/miki-ymmt/travel_app

[![Image from Gyazo](https://i.gyazo.com/73404179f8e5a5eb6ed9aeee4657c64a.png)](ht

元記事を表示

dotenv-railsを使ったグループへのGmail送信機能

この記事では、dotenv-railsを使ってGmailのメール送信機能を実装し、イベント通知を行うシステムをRailsで構築する方法について説明します。
今回はグループに入っているメンバーに,グループリーダーがメールを一括送信できるような機能を作成していきたいと思います.
## 1. dotenv-railsの導入
まず、dotenv-railsをGemfileに追加します。

“`:Gemfile
gem ‘dotenv-rails’, groups: [:development, :test]
“`

※dotenv-railsとは

dotenv-railsは、Railsアプリケーションで環境変数を管理するためのGemです。`.env`ファイルに設定した環境変数をアプリケーション内で利用できるようにし、セキュリティや設定の管理を簡単にします。特に、開発やテスト環境での機密情報の管理に役立ちます。

その後、`bundle install`コマンドを実行します。

## 2. 環境変数の設定
プロジ

元記事を表示

【update_attributesが使えない】NoMethodError in RegistrationsController#update【Rails】

## はじめに

Ruby on Railsにて、以下のエラーが発生しました。

“`ruby
NoMethodError in RegistrationsController#update
undefined method `update_attributes’ for #
“`

## TL;DR

update_attributesではなくupdateを使用することで解決しました。

Rails6からupdate_attributesは非推奨になっているようです。

## 参考

[https://railsguides.jp/6_0_release_notes.html#active-record-非推奨化](https://railsguides.jp/6_0_release_notes.html#active-record-%E9%9D%9E%E6%8E%A8%E5%A5%A8%E5%8C%96)

https://github.com/rails/rails/blob/v6.0.2.1/activerecord/lib

元記事を表示

【Rails7 とLaravel10】modelを担うファイルの記述方法比較

## 前提
両者PostモデルとUserモデルを作成してあります。基本的なcrudを実装する想定です

## 比較
### laravelと比較したrailsの特徴
・テーブルとクラスの関連付けによる命名ルールはLaravelと同じで、テーブル名の単数系
・リレーションメソッドの定義が簡潔

“`Post.rb
class Post < ApplicationRecord belongs_to :user end ``` リレーションメソッドは以下のように使えます パラメータで受け取ったidのpostインスタンスと投稿者名を返す関数になります ```posts_controller.rb def show @post = Post.find(params[:id]) # 以下のuser user_name = @post.user.name render json: { post: @post, user_name: user_name } end ``` ### railsと比較したLaravelの特徴 ・記述量は多くなりますが、userが

元記事を表示

コントローラの中のparamsのキーにフォームのどこのコードから送られるか

## 初めに

疑問に思ったことや上手くいかなかったことのアウトプットをしています。
自分なりの理解でアウトプットしていきます。初学者なので誤りもあると思います。
その際はご指摘いただけると幸いです。

## 疑問点

コントローラでparams[:example]がある時、ビューのフォームでは:exampleが見つからない。
どこから送られてるのでしょうか。

### 調べると
“`
<%= form_with model:@example, url:xxxxx do |f| %>
“`
のとこからだそうです。フォームの中で@exampleは:exampleとして扱われます。

元記事を表示

【Rails】bin/dev実行するとコンテナが落ちる

# はじめに
プログラミングスクールで学習中のものです。
webアプリ制作中に`bin/dev`コマンドを実行するとローカルホストに接続できなる事象が起き、解決できたため内容をまとめました。

# 動作環境

– **OS**: macOS
– **Rails**: 7.2.1
– **Ruby**: 3.2.3
– **Docker**: 25.0.3
– **Docker Compose**: 2.24.6

# 事象
CSSを追加したい時などに`bin/dev`コマンドを実行すると、`localhost:3000`にアクセスできなくなる。

dockerのログを見ると、webコンテナが強制終了されている(dbコンテナは無事)。

[![Image from Gyazo](https://i.gyazo.com/7f7dbfdad1e8b573299b165ad6f1734a.png)](https://gyazo.com/7f7dbfdad1e8b573299b165ad6f1734a)

# 原因
`bin/dev`が重複して実行されていたのが原因でした。

まず、`bin/d

元記事を表示

【Rails】お名前.comレンタルサーバー使用時、renderで独自ドメインを設定

## はじめに
Railsで実装したアプリをrenderでデプロイしました。
お名前.comで独自ドメインを取得し、お名前.comのレンタルサーバーを使用している場合の設定を行ったので備忘録に。

## 環境
* Ruby 3.2.4
* Rails 7
* Webアプリケーションサーバ render(デプロイ済み)
* PostgreSQL

* **お名前.comにて独自ドメイン取得済み**
* **お名前.comのレンタルサーバー(RSプラン)を使用**

## レンタルサーバーの使用について

お名前.comで独自ドメインを取得した場合は、DNSレコード設定から取得ドメインとrenderの紐付けを行います。

しかし、今回はレンタルサーバーを使用しているため、DNSレコード設定を行えません。

>お名前.comのサーバーサービスを利用している場合はDNSレコード設定と同時並行することはできません。

![スクリーンショット 2024-08-21 16.55.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaw

元記事を表示

devise_token_authを用いたパスワードリセット機能の実装

### パスワードリセット機能の全体像の理解

https://qiita.com/fumi238000/items/048990b343661048f6f8

### 実装するコードの参考にした記事

https://zenn.dev/naok_1207/books/ba7243f1460b9e/viewer/4fbad2

### リクエスト失敗の対応
パスワードリセット画面でなぜかPUTリクエストが成功しないのでdevise_token_authのupdateアクションの中身を確認。
リクエストの送信にはaccess-token,client,uidをヘッダーに持たせる必要があることを確認。
加えて、この時点でreset_password_tokenをupdateアクションに渡せていなかったことにも気づいた。

https://github.com/lynndylanhurley/devise_token_auth/blob/master/app/controllers/devise_token_auth/passwords_controller.rb

### 最終的なフ

元記事を表示

【Rails7 とLaravel10】controllerを担うファイルの記述方法比較

## 前提
両者Postモデルを作成してあります。基本的なcrudを実装する想定です

## 比較
### laravelと比較したrailsの特徴

・ドット記法が使われる
・モデルのインポート文不要
・pythonに近い構文
・ormはlaravelと似ており、直感的
・ファイル名はスネークケース

“`posts_controller.rb
class Api::V1::PostsController < ApplicationController def index @posts = Post.all render json: @posts end def show @post = Post.find(params[:id]) render json: @post end def create @post = Post.new(post_params) if @post.save render json: @post else render json: @pos

元記事を表示

【個人開発】相談する側とされる側を繰り返す、循環型相談アプリ「めぐる宝石花」を開発しました【Rails】

## はじめに
はじめまして、kzkio([@kzkio_0114](https://x.com/kzkio_0114))と申します。

2023年10月からプログラミングスクール「RUNTEQ」に入学し、Ruby on Railsを中心に学習しています。今回は、循環型相談アプリ「[めぐる宝石花](https://www.xn--z8j3e5a2787akv3apqn.com)」をリリースしましたので、その紹介と技術的な工夫についてまとめます。

今回はQiitaで初めての記事投稿となります。至らない点もあるかもしれませんが、ぜひ温かく見守っていただけると嬉しいです。

## アプリ紹介

### **サービスURL**

https://www.xn--z8j3e5a2787akv3apqn.com

### **GitHub URL**

https://github.com/kzkio114/FlowerJewelRing

## サービス概要

このアプリは、**相談する側と相談される側の役割を交互に繰り返す**ことで、相談が循環する仕組みを持った相談アプリです。ユ

元記事を表示

OTHERカテゴリの最新記事