Rails関連のことを調べてみた2023年08月17日

Rails関連のことを調べてみた2023年08月17日

Google Place APIを使用して情報を取得(Rails)

## はじめに

個人開発をするにあたって、セレクトショップとカフェの情報を取得したかったので、GooglePlacesAPIを使用して取得することにしました。ただ、今回APIを使用するのが初めてで苦労したので、同じような状況の方のために、使い方を記録として残します。

## GooglePlacesAPIとは

Googleが提供するAPIの一つで、地理的な情報(緯度、経度、place_id等)をもとに場所や施設に関する情報を取得できるサービスのこと。取得できる情報は以下の表のとおりです。

| 取得キー | 内容 |
| — | — |
| @address_components | 住所の詳細 |
| @formatted_address | 住所 |
| @formatted_phone_number | 電話番号 |
| @icon | Googleマップ上で使われるアイコン画像のURL |
| @international_phone_number | 国際電話番号 |
| @json_result_object | データがJSON形式でまとめられたもの |
|

元記事を表示

[Rails]いいねしてくれたユーザに、新規投稿をメール通知する(開発環境編)

## きっかけ
#### 経緯
就活中の選考での課題として
[投稿者のレビューにいいねをしたユーザに、その投稿者が新規でレビューしたときにメールでお知らせする機能]
の作成が出てきましたので、アウトプット用に記載いたします。

#### 開発環境
Ruby 3.1.2
Rails 6.1.7.3

## 手順
この機能を実装するためには、以下の手順で行うことにします。

#### ①モデルの設定
ユーザとレビュー、いいねのモデルを設定します。ユーザとレビュの関連付け、いいねとユーザ・レビューとの関連付けをします。
~~~app/models/user.rb
class User < ApplicationRecord has_many :contents has_many :favorites end ~~~ ~~~app/models/content.rb class Content < ApplicationRecord belongs_to :user has_many :favorites end ~~~ ~~~app/models/favorite.rb cl

元記事を表示

【個人開発/未経験】エモさたっぷりプロフィール帳アプリ開発してみた【Next.js + Rails API】

## はじめに
はじめまして、ミツと申します!
突然ですが、皆様、**プロフィール帳**ってご存知でしょうか!?
私が小学生の頃(約20年前)クラス替えや席替えのタイミングで、女子のクラスメートから「これ、書いて~」と1枚、かわいい用紙がよく渡されました。その紙に沿って自分のプロフィールを書き、持ち主に返すという流れがありました。

今回このプロフィール帳をモチーフにしたエモさたっぷりのアプリを開発したのでご紹介いたします!

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3531138/a355b8db-39bc-ab90-b715-ec6a6f5b1ff3.png)

※私は現在プログラミング学習中の実務未経験の者であり、技術的な内容などに誤りを含む可能性があります。不適切な記述などがありましたらコメント等で教えていただけると幸いです?‍♂️

## 作成したアプリ
##### アプリ名: [りーどみー](https://readmeprofile.com/)
![top_og

元記事を表示

`shallow`オプション

## Railsの`shallow`オプションを活用したルーティングの簡潔化

Railsの学習中にshallow :trueについて理解する機会があったので共有したいと思います。
Railsのルーティングには、ネスト(親と子の関係、後述)されたリソースのURLを簡潔にできる`shallow`オプションがあります。

### ネストされたリソースとは?

これは、特に親子関係のあるリソース(例:掲示板とコメント)のことをいいます。
例えば、1つの掲示板(`boards`)には複数のコメント(`comments`)が紐づく場合があり、`boards`が親リソース、`comments`が子リソースとなります。
この関係性をURLで表現すると、`/boards/:board_id/comments/:id`のようになります。
/boards/:board_id(ここまでが親であるboards)/comments/:id(子要素のcomments)

### `shallow`オプションの利点

新しいコメントを作成する際(`create`アクション)には、どの掲示板にコメントが紐づ

元記事を表示

docker-composeで開発環境を構築する

# はじめに
今回はdocker composeでRuby on RailsとPostgreSQLを使用した開発環境の構築手段をまとめます。

# 開発環境について
構築する開発環境は以下のようになります。

| App名 | バージョン |
|:– |:–:|
| Ruby | 3.2.2 |
| Ruby on Rails | 7.0.6 |
| postgres | 12 |
| docker-compose | 3.9 |

# 構築手順
## 1. 必要なファイルを作成
環境構築に必要なファイルを作成していきます。
ファイル構造は以下のようになります。

“`
/raiis-docker
├─ Dockerfile
├─ Gemfile
├─ Gemfile.lock
└─ Docker-compose.yml
“`

### 1.1 Dockerfileを作成
Dockerfileをroot直下に作成します。
Dockerfileの記述内容は以下になります。
installが必要なアプリケーションは適宜追加してください。
今回は開発環境が決まっている

元記事を表示

Railsの”アソシエーション(関連付け)”について

## はじめに

Railsの学び始めると、アソシエーションという概念に出会いました。`belongs_to`や`has_many`といった関連付けについての基本的な理解を深めたいと考え、少しだけですがまとめました。

## 関連付け(association)とは

– モデル同士の関係性を表すための仕組みである。
– Active Recordによって、この関連付けが容易に実装できる。

## なぜ関連付けを行うのか?
関連付けを行うことで、データベース上の異なるテーブル間の関係性を表現できる。
データの取得や操作が効率的に行えるようになる。

## アソシエーションの種類と説明

### `belongs_to`(従属)

– 指定するモデル名は「単数形」。
– Railsはこの関連付け名を元に、関連するモデルを自動的に推測。
– 「主キー – 外部キー」の関係性を保持。

### 外部キーについて

例: `users`テーブルと`orders`テーブルの関係

– **`users`**テーブル: 各ユーザーに一意な**`id`**(主キー)
– `orders`

元記事を表示

TechStreamのコース紹介

フリーランスでフロントエンドのエンジニアをしながら、[TechStream](https://protech-rho.vercel.app/)というプロダクトを個人開発しております、かいです!
今回はTechStreamのコース紹介について書いていきます。

### TechStreamとは?
[TechStream](https://protech-rho.vercel.app/)は、「誰よりも早く、エンジニアへ」というコンセプトの元に発足されたプログラミングの動画プラットフォームです。未経験からエンジニアへ費用をなるべく抑えて転職するためのサポートをいたします。

![tekusuto.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3475205/948ddc5b-0ed2-cabc-9a0f-9239dcb9ea87.gif)

[リンク](https://protech-rho.vercel.app/)はこちらから☟

https://protech-rho.vercel.app

特徴は以下

元記事を表示

RailsでYouTube Data APIを使って曲の検索機能を実装する

## **1. はじめに**

最近、Youtube Data APIを使用してみたので、備忘録として記事にまとめました。
Youtube Data APIを使用して曲名とアーティスト名での検索、YouTubeのサムネイル表示を実装しています。

また、プログラミング学習中の身であるため、技術的な内容に誤りを含んでいる可能性があります。
おかしな記述がありましたらコメント等で教えていただけたらと思います。

## **2. 実行環境**

この記事は以下の実行環境で動作確認しました。

– Ruby 3.1.4
– Rails 7.0.6

## 3. YouTube Data APIキーの取得

まず、YouTube Data APIを使用するためにAPIキーを取得する必要があります。

以下の手順で取得できます。

1. [Google Developers Console](https://console.developers.google.com/)にアクセス
2. プロジェクトを作成
3. [YouTube Data API v3](https://console.cloud

元記事を表示

【Rails】マイグレーションとは

最近ruby on railsの学習を始めたのですがHTMLとPHPの勉強してきた人間なので、
はじめはマイグレーションという言葉の概念すらわからない状態でした。

なんとなくマイグレーションについてわかってきたので同じような初学者に向けて
学んだことをまとめていきたいと思います。

# 目次
[マイグレーションとは](#マイグレーションとは)
[マイグレーションを使うメリット](#マイグレーションを使うメリット)
[マイグレーションファイルを作成する](#マイグレーションファイルを作成する)
[マイグレートの実行](#マイグレートの実行)
[マイグレーションの修正](#マイグレーションの修正)
[絶対これはしちゃダメなこと
](#絶対これはしちゃダメなこと
)
# マイグレーションとは
そもそもマイグレーションファイルとは何か。
マイグレーションはデータベースの構造を書き記した設計書のようなものです。
データベースは以下DBとさせていただきます。
マイグレーションファイルのスゴイ所は、
SQL文を書かなくてもDBの変更(テーブルの作成や変更)ができるというところです。

# マイ

元記事を表示

Rubyの環境構築手順

フリーランスでフロントエンドのエンジニアをしながら、[TechStream](https://protech-rho.vercel.app/)というプロダクトを個人開発しております、かいです!
今回はRubyの環境構築の手順について書いていきます。

### 1.Rubyとは

Rubyは多くの開発者に愛されているプログラミング言語の一つです。今回は、Rubyの環境構築手順について解説します。特に、初心者の方にも分かりやすく、手軽に始められるように説明します。

### 2.TechStreamについて
(宣伝許してください:rolling_eyes:)
[TechStream](https://protech-rho.vercel.app/)は、「誰よりも早く、エンジニアへ」というコンセプトの元に発足されたプログラミングの動画プラットフォームです。未経験からエンジニアへ費用をなるべく抑えて転職するためのサポートをいたします。

![tekusuto.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/34

元記事を表示

不労所得獲得装置開発その3~AVアラート~(アダルト注意)

# はじめに
2023年5月に「[不労所得獲得装置開発その2~AVブログパーツサイト構築~(アダルト注意)](https://qiita.com/drafts/a41e4bd5308ff22dee8b)」で、RailsによるAVブログパーツを作成できるサイト[ヨメレバ](https://yomereba.com/)のパクリについて投稿しました。

https://www.avaffi.link/

しかし、こけました。まったく使ってもらえておりません。サーバー代も払えません…

自分なりに理由を考えてみたのですが、少なくとも日常的に自分で使うものでなれば、他人だって使わないし、改善案も出てくるはずがないというものでした。

そこで今回は、自分でも前から欲しいと思っていた機能を開発しました。その機能とは、簡単に言うとGoogleアラートのAV版です。アラートを設定すると、それを含んだAVタイトルが発売されるとメールでお知らせします。対象サイトはFANZA、DUGA、SOKMIL、MGS動画です。

例えば、私の推しAV女優天使もえは、毎月10日(?)に新タイトルが発

元記事を表示

RailsプロジェクトでJavaScriptが動作しない問題とその解決方法

## はじめに
今回の記事ではRailsプロジェクトにおいて、JavaScriptが動作しないというエラーが起きた原因と解決方法について書く。

## 実際に起こっている現象
ヘッダーのリンクをクリックしたときにログインしていなければトップページへ遷移するように設定している。遷移後のページではslickによってGIFがスライダー表示される。slickはスライダーを作成するためのJQueryのプラグイン。
slickは下記のようにapplication.jsで設定している。
“`javascript
import “@hotwired/turbo-rails”
import $ from “jquery”;
window.$ = $;
window.jQuery = $;
import “slick-carousel”;

$(document).ready(function(){
$(‘.slider-3’).slick({
// Slickのオプション設定
});
});
“`
リンクからトップページにアクセスした時に、slickがうまく作動せずスライだーを表示さ

元記事を表示

RailsをDocker化しよう

# はじめに
どうも、どすこいです。
文系大学生をしております。日々のプログラミングの勉強をアウトプットするために書いております。
今回は、ローカルで作ったRailsのアプリをDocker化してデプロイしたいと思いこの記事を作成しております。
今回の記事では、データベースにpostgresqlを使用しております。

## 対象読者
– dockerを学びたての方
– 自作したRailsアプリをDocker化したい人

## 環境
– M2 Macbook Air
– Railsアプリを作成済み

## やらないこと
– 今回は、Dockerの細かな解説はしませんの予めご了承ください。

## Dockerの環境構築

まずは、ディレクトリのrootにDockerfileとdocker-compose.ymlを作成します。

“`:terminal
touch Dockerfile docker-compose.yml
“`

続いて、Dockerfileを記述します。

“`:Dockerfile
FROM ruby:3.2.2

RUN apt-get update && ap

元記事を表示

RailsアプリケーションにWYSIWYGエディタ(CKEditor)を導入する

## はじめに
こんにちは。[kosukein38](https://twitter.com/kosukein38)です。
業務でRails4系のアプリケーションにWYSIEIGエディタを導入する必要があったため、そのライブラリの導入手順やできることについて、まとめておきます。
※知識の整理目的も含まれるため、少々冗長になる可能性があります。適宜読み飛ばしていただければと思います。
こんなのをメールの本文入力フォームに導入します。
editor.jpg

## 対象者
– WYSIEIGエディタが何かということを知りたい方
– Rails4系のアプリケーションにWYSIEIGエディタを導入する方法が知りたい方

Rails6系以降はTrixというWYSIEIGエディタをベースにした、Action Textという

元記事を表示

【Ruby】モジュールでコールバックメソッドを定義する場合、included do内に記述する理由

# 結論
– コールバックメソッドは、実行するクラスのコンテキストで評価される必要がある。
– モジュール内にそのまま記述すると、モジュールのコンテキストで評価されてしまう。
– includedブロック内に記述することでコールバックメソッドがincludeしたクラスのコンテキストで評価されるから。

# コールバックを定義するコード
– `difine_method`を使用して、実行時にメソッドを定義している
– `difine_method`が呼び出されるクラスに定義される
“`ruby
[:before, :after, :around].each do |callback|
define_method “#{callback}_action” do |*names, &blk|
_insert_callbacks(names, blk) do |name, options|
set_callback(:process_action, callback, name, options)
end

元記事を表示

【未経験開発 Rails + React + Docekr + Terraform + AWS + GitActions】 職場の課題を解決するアプリ開発

### 0.はじめに
初めまして、@mkameと申します。

当記事は、「**Webエンジニアへのキャリアチェンジを目指しているweb開発未経験者が、アプリを開発するまでの学習過程**」についてまとめたものです。

現在、筆者は非IT系企業の社員として働いており、**Web開発エンジニアとしての実務経験はありません**。

そんな筆者がWebエンジニアとしてのキャリアチェンジをするためのポートフォリオとして、本アプリを開発しました。

学習開始から現時点までにおいて、学習はほぼすべて独学で進めてきました。2023/4から[APPRENTICE](https://apprentice.jp/lp)というサービスを活用して、メンターとの1on1にて学習方針やオリジナルプロダクトの相談を行い、同期仲間と学び合いながら学習カリキュラムに沿って自走してきました。

#### 開発アプリ概要
#### アプリ名:[図面管理アプリ 『zumens』](https://dev.zumens.jp)
![top.png](https://qiita-image-store.s3.ap-northeast

元記事を表示

私はChatGPTを使ってRailsガイドを日本語に翻訳しました。

Hello everyone, I’d like to share with you that I recently did a hobby project, using ChatGPT to translate the Rails Guide into different languages. I just made a Japanese version??, [https://ai.rails-guide.com/jp](https://ai.rails-guide.com/jp). I also wrote an article about how I do that https://dev.to/kevinluo201/dear-ai-can-you-translate-the-rails-guide-for-me-3hc. Please check it out if you think it’s interesting ?.

I think the quality of AI translation is fair enough though it’s not perf

元記事を表示

Rails 7 + MySQLをDockerで環境構築する方法

## はじめに

今回は、Rails 7とMySQLをDockerでの環境構築について、初心者向けに手順を説明します。

## 前提条件:

– Docker がインストールされている
– Docker Compose がインストールされている

## 1. ファイル構成の理解

まずは、以下のファイル構成から始めます。

“`
docker_rails_app
├─ backend
│ ├─ Gemfile
│ ├─ Gemfile.lock
│ ├─ entrypoint.sh
│ └─ Dockerfile
└─ docker-compose.yml
“`

**なぜこの構成か?**
一般的に、Railsのアプリケーションは`backend`のようなディレクトリ内に保存されます。その中にはアプリケーションのコードや依存関係を管理するためのファイルが存在します。`docker-compose.yml`はプロジェクトのルートディレクトリに配置するのが一般的です。

## 2. 各ファイルの中身とその目的

– **Gemfile**

Rubyのライブラリ管理のための

元記事を表示

はじめてdotfilesを作成してみる。

開発環境の設定を短縮できるdotfilesを作成したいと思い、いろいろ調べています。
今回は、dotfilesをとりあえず作ってみて、大まかな手順を記録していきます。

## dotfilesを作成する流れ

#### `GitHub`で新しいリポジトリ`dotfiles`を作成する
1. Githubにログインしてマイページに進み`repositories`メニューに進む
1. `New`ボタンから、リポジトリ新規作成画面`Create a new repository`に進む
1. `Repository name`の箇所に`dotfiles`と入力する
1. その他の設定は特にいじらなくてもOK(外部公開したくない場合は`private`を選択)
1. `Create repository`ボタンでリポジトリ作成完了

#### 作成した`dotfiles`リポジトリをホームディレクトリ直下に`git clone`する

1. Githubで作成したリポジトリ`dotfiles`をGit管理するために、まずはcloneしてローカルに落としていきます。
1. Githubで作

元記事を表示

rails 特殊な変数 flash flash[:notice]

Railsではフラッシュを表示するために、特殊な変数flashが用意されています。アクションで変数flash[:notice]に文字列を代入すると、flash[:notice]をビューで使うことができます。変数flashは1度表示された後に自動で削除されるようになっています。flashはいろいろな箇所で共通で使っていくのでapplication.html.erbで表示しましょう。

“`ruby
# application.html.erb
<% if flash[:notice] %>

<%= flash[:notice] %>

<% end %>

“`
<% if flash[:notice] %>:

これは、Rubyの制御構造を使用しています。条件分岐を行っています。
もしflash[:notice]という変数(またはキー)が存在する場合、条件が成立します。
:

これはHTML内のコメントです。コードの

元記事を表示

OTHERカテゴリの最新記事