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

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

webhookとweb APIについて浅く理解する

## この記事を読んでわかること
webhookとAPIの違いについてなんとなく理解できるかも..?

### API
クライアント(ユーザーのブラウザやアプリケーション)がTwitterのAPIエンドポイントにリクエストを送信します。
Twitterのサーバーがそのリクエストを受け取り、即座にレスポンスを返します。

コード例(Twitter APIから最新のツイートを取得):
“`ruby
require ‘twitter’

client = Twitter::REST::Client.new do |config|
config.consumer_key = “YOUR_CONSUMER_KEY”
config.consumer_secret = “YOUR_CONSUMER_SECRET”
config.access_token = “YOUR_ACCESS_TOKEN”
config.access_token_secret = “YOUR_ACCESS_SECRET”
end

tweets = client.user_

元記事を表示

【Rails】【初学者向け】RSpecのシステムテストで「Net::ReadTimeout:」となってしまう事象

## 背景
実務でRSpecを使用している為、キャッチアップとしてRailsチュートリアル教材を活用し、RubyのテストツールであるMinitestをRspecへ代替えし学習を進めています。
当記事の目的は、備忘録と同じようなエラーに遭遇してしまった方向けに作成しています。

## ハマってしまった箇所
動的なページタイトルが正しく表示されているかテストを実行したところ、下記のエラーに遭遇。
システムテストなので、ブラウザは立ち上がるがテストは進まずタイムアウトとなってしまう。

“`
1) StaticPagesController ページタイトルを表示 Help 表示される
Failure/Error: visit static_pages_help_url

Net::ReadTimeout:
Net::ReadTimeout with #
“`

テストの内容はこんな感じ。
“`ruby:spec.rb
RSpec.describe StaticPagesController, typ

元記事を表示

Railsを使ってアプリを作る(基礎中の基礎)

# はじめに
今回は、railsをつかってアプリをつくり、デプロイまでの基本的な流れをまとめました。
基礎中の基礎という通り、画面にHello,worldを表示するだけのアプリになります。
エディタはVSCodeを用いて、バージョン管理をGitで行い、Renderへデプロイします。
使用ハードはmacbook m2です。
Rubyはデフォルトで入ってるので、Railsのインストールから始めます。

# Railsをインストール
“`
$ gem install rails
“`

-vを行うことでバージョンの指定もできます。

“`
$ gem install rails -v 7.0.4.3
“`

次にbundlerをインストールします。

“`
$ gem install bundler
“`

# アプリを作る

Railsプロジェクト用のenvironmentディレクトリを作ります。

“`
$ cd
$ mkdir environment
$ cd environment/
“`

rails newを実行する。
このとき、PCにインストー

元記事を表示

rescueとrescue_fromの使い方

# はじめに

先日、業務でrescueを使用したエラー処理を実装したので、備忘録として記事にしたいと思います。

この記事では、rescue と rescue_from の基本的な使い方をまとめてみました。

私自身、まだまだ未熟な経験の浅いエンジニアですので、誤った解釈をしている可能性もあります。もしそういった場合がありましたら、ぜひコメントでご指摘いただければ幸いです。

# rescue

`rescue` は、プログラム内で発生する特定のエラーを効果的に捕捉し、対処するための機能です。
これにより、エラー発生時の適切な対応やプログラムの安定稼働が可能になります。

### 基本構文

`rescue` を使うことで、特定のエラーが発生した時に特定のコードを実行するよう設定できます。
基本的な形式は以下のようになります。

“`ruby
begin

# 例外が発生する可能性のあるコード

rescue [例外クラス]

# 例外が発生した時に実行するコード

end
“`

### 使用例

例えば、ユーザーがデータベースに存在しない ID でアクセスしたときにエラ

元記事を表示

【Rails】form_withモデルニカONE {PIECE of cake}アイランド編【初心者です】

# form_withの今の認識
※間違っている可能性があります

viewからcontrollerに送るヘルパーメソッド、
モデルを入れると、viewがnewならcreateへ、
viewがeditならupdateへ良き塩梅で行ってくれる。
良き塩梅に行ってくれるため、
新規作成の時と編集画面の時で_formのようにviewをフォーム配下でまとめられたりする。
良き塩梅で行ってくれるとなんでまとめられるのかって?
newの時urlでcreateに繋げちゃった世界線で考えてみて下さい、
editの時におんなじ感じで書くし、まとめよって思いますよね?
createいってまうて!おいだるいて!ってなるでしょ?
痒い所に手が届く、そんなヘルパーメソッドだと思ってます。

# form_with使い方
“`ruby
<%= form_with @ニカ do |d| %>
<%= d.hidden_field :ヒトヒトの実 %>
<%= d.submit 'ゴムゴムの実' %>
<% end %>
“`

これがform_withの使い方です。
今回の場合form_withを用いて、
dに

元記事を表示

Rails 6.0.3でRuby 2.6.6の環境構築

 Ruby on Railsなるものを勉強してみようと『パーフェクトRuby on Rails【増補改訂版】』に手を出しました。

 数年前の書籍だから完全に同じ環境を構築する必要も無さそうだけど、出来るだけ同じ環境で勉強してみることにしました。意外と手間が掛かったので記録しておきます。

 書籍の「Appendix Railsの開発環境構築」に関しては特に問題は無かったので省略して、Railsのversion 6.0.3をインストールする部分を説明していきます。

 まず普通に`gem install rails -v 6.0.3`をすると下記のようにnokogiriライブラリに関するエラーが出ます。
“` console
$ gem install rails -v 6.0.3
(中略)
Successfully installed activesupport-6.0.3
Building native extensions. This could take a while…
/home/user/.rbenv/versions/2.6.6/lib/ruby/2.6.0/ru

元記事を表示

Railsでの命名の単数複数形使い分け

### モデル名

– **形式**: 単数形
– **例**: User, Product, Order
– **理由**: モデルは1つのオブジェクトを表すため
– **参考コマンド**: “`rails generate model Post content:text“`
(postsテーブルにtext型のcontentカラムを作成)

### コントローラー名

– **形式**: 複数形
– **例**: UsersController, ProductsController, OrdersController
– **理由**: コントローラーは複数のリソース(モデルのインスタンス)を扱うため
– **参考コマンド**: “`rails generate controller Posts home about“`
(home,aboutアクションを持つPostsコントローラーを作成)

### テーブル名

– **形式**: 複数形
– **例**: users, products, orders
– **理由**: 1つのテーブルには複数のレコー

元記事を表示

Sidekiq + Redis + ActiveJobでLINE定期通知機能を実装してみた

## はじめに

個人開発にて、`Sidekiq`、`Redis`、`ActiveJob`を組み合わせたLINE通知機能を実装しました。

備忘録として、実装の流れをまとめていきたいと思います!

**▼個人開発についてまとめた記事**

https://qiita.com/rk2530/items/61b1532dffef6382af77

:::note warn
私はプログラミング学習中で、初学者です。
内容に誤りがある場合がございます。
もし間違いがあればご指摘いただけますと幸いです。
:::

## 環境
– Ruby 3.2.2
– Ruby on Rails 7.0.8
– Render

## 事前準備
– [Render](https://render.com/)アカウントの作成
– [LINE Developersコンソール](https://developers.line.biz/ja/docs/line-developers-console/)で[チャネルを作成](https://developers.line.biz/ja/docs/messaging-api

元記事を表示

【Rails】Ferrumを使ってHTMLをPDFへ変換してみた(wicked_pdfからの移行)

HTMLからPDFを生成する処理が上手く動かなくなってしまったため、
PDF生成ライブラリを`wicked_pdf`から`Ferrum`へ移行しました。
まだまだRails初心者なので、何か間違い等あればご指摘いただけると幸いです!

## HTMLからPDFの変換処理に定番だった`wicked_pdf`

上記の通り、PDF生成機能の実装によく使われていたかと思います。

今回、私はRailsのバージョンを6から7へ引き上げて動作確認を行なった際に、
既存で実装されているPDF生成機能が動かなくなっていることに気がつきました。
なお、既存の実装内容は、viewテンプレート(hogehoge.html.erb形式のファイル)から
`wicked_pdf`を使用してPDFへ変換処理を行っていました。

`wicked_pdf`自体は現在もサポートされているgemですが、
このgemは`wkhtmltopdf`というHTMLをPDFに変換するCLIツールに依存しています。
そして、この`wkhtmltopdf`は、2023年1月にGitHub上からリポジトリがアーカイブされており、開発終了

元記事を表示

[マイグレーション]Mysql2::Error: BLOB, TEXT, GEOMETRY or JSON columnの原因と解決策

# エラー文
テーブル作成のため、モデルとともに作成されたマイグレーションファイルに、型とカラム名を書き、`rails db:migrate`を実行した。

するとターミナルが以下のようなエラーを吐き出した。
“`terminal
xxxxxx@yyyyyy testApp % rails db:migrate
== 20240404111608 DeviseCreateUsers: migrating ================================
— create_table(:users)
rails aborted!
StandardError: An error has occurred, all later migrations canceled: (StandardError)

Mysql2::Error: BLOB, TEXT, GEOMETRY or JSON column ‘profile’ can’t have a default value
/Users/code/Desktop/xxxxx/project_2.0/testApp/db/

元記事を表示

【個人開発】自分以外の「死ぬまでにやりたいことリスト」が見れるサービスを作りました

# はじめに

皆さま、こんにちは、すみ([@sumisumi2000](https://twitter.com/sumisumi2000308)) と申します。
2024 年 1 月 20 日より、オンラインプログラミングスクール RUNTEQ にて、Ruby on Rails を学習しています。

2024 年 3 月 30 日にリリースしたアプリの紹介と開発の振り返りをまとめました!
アプリについての記事は初めてなので、温かい目で見ていただけると幸いです。

# 目次

1. [作成経緯](#作成経緯)
2. [アプリの紹介](#アプリの紹介)
3. [技術構成](#技術構成)
4. [こだわったポイント](#こだわったポイント)
5. [開発の流れ](#開発の流れ)
6. [改善点](#改善点)
7. [開発を振り返って](#開発を振り返って)

# 作成経緯

通っているオンラインプログラミングスクールで受講生がアプリを出し合おう!というイベントがあります。
そこに向けて、カリキュラムで行っていた Rails の復習と、カリキュラムであまり触れない CSS の学習を兼ねてア

元記事を表示

【個人開発】バーチャル個展AIサービス 「Gallary.ai」を作りました【Next.js × Rails API × Three.js】

# はじめに
こんにちは!
ガク(@Necono_Engineer)と申します。
プログラミングスクール[RUNTEQ](https://runteq.jp/?argument=8Y0vPq40&dmai=a615540036655c&gad_source=1&gclid=Cj0KCQjwk6SwBhDPARIsAJ59GwfKpKKUmrpZgd8iP1Ne8S_N901hg_LcckgnsHX47tmg9UAeazQa5rYaAgguEALw_wcB)に入学し、学習をしています。

この度、未経験からwebエンジニアへの転職をするため( **[Gallery.ai](https://ai-coten-nu.vercel.app/) )** を開発しました。

# 目次

| 章 | タイトル | 備考  |
|—:|————-|————|
| 1 |[サービス概要](#サービス概要)| このサービスについて |
| 2 |[開発背景](#サービスを作成した背景) |開発に至った理由について|
| 3

元記事を表示

M2 MacでRubyのバージョンアップ

ruby on rails の環境構築をしようとした際に、
## BUILD FAILED (macOS 14.3 on arm64 using ruby-build )
エラーに当たった。

原因は結局不明のままですが、とりあえず動かしたい人向けに記事を残します。

“`bash

(base) % brew -v
Homebrew 4.2.16
(base) % rbenv
rbenv 1.2.0
Usage: rbenv []

Some useful rbenv commands are:
commands List all available rbenv commands
local Set or show the local application-specific Ruby version
global Set or show the global Ruby version
shell Set or show the shell-specific Ruby version

元記事を表示

Rails – DBの stringe のカラムを integer に変換する

# 例

ネットで調べると `using` を使う例が出てくるが、自分のRails環境では以下だけで良かった

“`rb
class ExampleMigration < ActiveRecord::Migration[7.1] def up change_column :table_name, :column_name, :integer end # ロールバック用 def down change_column :table_name, :column_name, :string end end ``` # チャットメンバー募集 何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。 https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ # プロフィール・経歴 https://github.com/YumaInaura/YumaInaura

元記事を表示

【RSpec】単体テストを完全理解する

# この記事を読んでほしい人
– Ruby on railsのテストコードをこれから学ぼうとしている人
– 単体テストコードで躓いた人
– 単体テストコードを勉強したけど、振り返ってより理解したい人

# この記事のゴール
以下を理解することができます。
– Rspecが何をしているのか
– モデルファイルの重要性
– 単体テストコードを書くには何を見れば良いのか

# Rspecとは
Rspecは、Ruby言語用のテストフレームワークです。
プログラムが**期待通りに動作することを確認するため**のテストコードを書くために使用されます。

>Rspecは「ビヘイビア駆動開発」(Behavior-Driven Development, BDD)の原則に基づいており、開発者が人間が読める形式でテストを記述できるように設計されています。これにより、テストコードが仕様書のように機能し、プログラムの振る舞いについての明確なドキュメントを提供します。

# Rspec何をするのか
モデルの単体テストは、モデルに書いたバリデーションが正しく働いているかを確認します。

### バリデーションの復習

元記事を表示

【Rails】GMOあおぞらネット銀行指定形式CSVエクスポートの実装

## 自己紹介
はじめまして、はる([@lemonade_37](https://twitter.com/lemonade_37))と申します。
駆け出しエンジニアとして働き始めて約1ヶ月が経過しました🐣

## 概要
業務内で、GMOあおぞらネット銀行指定形式のCSVファイルをエクスポートする機能を実装する必要がありましたが、
なかなか想定する形式で出力できず苦労したためまとめました✏️

### 環境
– Ruby 3.2.3
– Rails 7.1.3
– Importmap
– Tailwindcss、daisyUI
– PostgreSQL

:::note warn
間違っている箇所や、紹介した方法よりも良い方法があるかもしれませんので、その際は教えて頂けると嬉しいです🙇
:::

## エクスポート・インポートとは?
改めて言葉の定義を確認しておきます。
#### エクスポートとは
> あるソフトウェアで作成・編集したデータを他のソフトが読み込める形式に変換したり、そのような形式でファイルに保存することを指す。[1)](#引用記事)
#### インポートとは
> あるソ

元記事を表示

【個人開発】実務経験1年3ヶ月が個人開発してみた!

# はじめに
実務経験1年3ヶ月のWebエンジニアです!
昔思い描いていたサービスをリリースすることができました!
個人開発の広告を兼ねて投稿します!
※5分で読めます。

# サービス概要
## ガルバとキャバ
https://girlsbar-cabalet.com

![opengraph-image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1798471/2e1856f2-051d-6c01-7bdf-fff07bb5af00.png)
※詳細はサイト見てね

## なぜそのサービスを作ろうと思ったのか
大学4年の頃、同じサークルの友人がキャバクラで働いており、「こんなサービスあったらいいなー」という話をしていたのを聞いていました。エンジニアになって8ヶ月ぐらい経った頃、ふと思い出して作り出しました。

## 主な機能
### 検索機能
現在地から近い順にキャストを検索することができます。
その他にも、県名、最寄駅、金額、店舗の種類、営業しているかどうかなどの任意項目があります。
現在地か

元記事を表示

現場で使えるRuby on Rails5速習実践ガイドを読んで

## はじめに
現場で使えるRuby on Rails5速習実践ガイドを読んだので、感想などをまとめてみました。

## 良かったところ
実際にアプリを作成しながら機能の実装についてしっかり解説してあるので、非常にわかりやすかったです。またチーム開発の流れも書いてあって、未経験の方は実務の流れがイメージしやすいので、とても良いと思いました。

## 学んだこと
#### MVC
Railsでは、アプリケーションの構造や名前付けを、M(モデル)、V(ビュー)、C(コントローラ)の3つの要素に従ってます。

**モデル**とは、データとデータに関わるビジネスロック(アプリケーション特有の処理)をオブジェクトとして実装したもです。データベースの保存や読み込みもモデルが担当する。

**ビュー**とは、ブラウザに表示する画面、HTMLなどのHTTPレスポンスの中身を実際に組み立てる部分です。必要に応じてコントローラからモデルのオブジェクトなどを受け取り、画面表示に利用します。

**コントローラ**は、ユーザーが操作するブラウザなどのクライアントからのリクエストを受け、適切なレスポンスを作成す

元記事を表示

Railsでモデルに書いたメゾットをrails consoleで検証してみた

## この記事を書いた目的
Railsでコードを書く際にモデルにインタンスメゾットを定義をして、コントローラで呼び出すことがよく行われるということを学びました。少し調べてみると、このことは主にファットコントローラを避けることを目的として行われているようです。
ただ、初心者の私からすると「コントローラの流れすら追うのに苦労しているというのに、別の場所に定義したメゾットを呼び出すなんて、わけわかめ!」ということで、実際にコンソールを動かしてどういった動きをしているのか確かめてみました。
## 今回検証したコード
掲示板作成アプリ内のお気に入り登録ができる機能に関わる箇所です。該当のコントローラとモデル内のインスタンスメゾットは下記の通りです。

“`ruby:bookmarks_controller.rb
def create
board = Board.find(params[:board_id])
current_user.bookmark(board)
#…
end
“`
“`ruby:user.rb
def bookmark(board)

元記事を表示

書籍『Everyday Rails』 で学ぶテストファーストプログラミング

## はじめに
参画予定の案件でRspecを使う機会がありそうなので、予習も兼ねて書籍で基礎から勉強してみました。
本書では、**11章 テスト駆動開発(TDD)に向けて**にて、テストファーストプログラミングを実践できる部分がありました。これが興味深かったので紹介と、今までの開発サイクルと比較してみます。

## 書籍について
#### 学習に使用した書籍
[Everyday Rails – RSpecによるRailsテスト入門](https://leanpub.com/everydayrailsrspec-jp)

#### 書籍詳細
12章で構成されていて、RSpecの基礎知識から学べるような書籍でした。
章を進めるにつれてリファクタリングもしていく感じでした。

目次

“`
1. イントロダクション
2. RSpec のセットアップ
3. モデルスペック
4. 意味のあるテストデータの作成
5. コントローラスペック
6. システムスペックで UI をテストする
7. リクエストスペックで API をテストする
8.

元記事を表示

OTHERカテゴリの最新記事