Rails関連のことを調べてみた2022年06月05日

Rails関連のことを調べてみた2022年06月05日

Ruby on railsで削除前にアラートを出す

## はじめに
自作アプリにて記事やコメントの削除をする際に、削除ボタンを押したらそのまま削除が実行されるのではなくアラートを出してほしいなと思い、調べたらとても簡単に実装可能だったので残しておく。

## 環境
Ruby 2.6.5
Rails 6.0.0

## 手順
手順はとても簡単。ビューの削除ボタンに`dataオプション`で`{confirm: ‘削除しますか?’}`と追記するだけ。(メッセージは任意のもの)
“`ruby:app/views/menus/show.html.erb
<%= link_to menu_path(@menu), method: :delete, class: "delete_btn", data: {confirm: "コメントを削除しますか?"} do %>

<% end %>
“`
## おわりに
削除前のアラートについては以上です。間違えている箇所などありましたら教えていただけると幸いです。

元記事を表示

Railsコンソールで出力したデータを見やすくする

mac OS バージョン11.6
Rails 6.0.4
# pry(REPL環境)へHirbを導入する
railsでは標準の**irb**よりも、高度なpryがコンソールツールとしてよく使われています。

**Hirb**はRailsコンソールでテーブルデータを見やすく表示してくれるGemです。
pryまたはirbでモデル表示「**[モデル名].all**など」をおこなうと表示があまり見やすくありません。そこで、Hirbでは表形式で表示してくれます。

こんな感じに。
![11f4b500a0f6cb379bff792a39ee27e7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1962714/9f90fa5a-f350-72f4-8c72-b588aadaacab.png)
コンソールを見やすくするために、これからpryとHirbを導入していきます。

# 手順
①まず、Gemfileにgemをインストールします。

“`.Gemfile
    gem ‘pry-rails’

gem

元記事を表示

Railsのアプリケーションの新規作成からページを表示するまでの手順を徹底解説

## 概要
こんにちは。shun198です。
今回はRailsアプリケーションの新規作成からページを表示させるまでの手順を解説したいと思います。

## 前提
rubyのバージョンは2.6.6
Railsのバージョンは6.0.5
linuxの基本的なコマンドは知っている
RailsではじめてWebアプリケーションを作成する
MacOSを使っている(zshを使っている)
ローカル(Mac)上でページを表示します

## アプリケーションの作成からWebページの表示方法
### アプリケーションを作成
ターミナルを開いてRailsのアプリケーションを任意のフォルダ内に移動して作成します。
今回私はqiita_appという名前で作成しますが、アプリケーションの名前は自由に決めてください。
ターミナルで
“`
rails new
“`
と打つと大量のファイルが生成されます。ls -lでリスト化して見てみると以下の通りです
“`
❯ ls -l
-rw-r–r– 1 shun staff 1967 6 4 17:08 Gemfile
-rw-r-

元記事を表示

【Ruby on Rails】migrationファイル change・up/downの使い分けについて

## はじめに
カラムの追加や削除をしたり、テーブル内の情報を変更する際にmigrationファイルを追加して対応することがある。

その時に、基本的な記述として、、、
“`ruby
def change

end
“`
“` ruby
def up

end

def down

end
“`
という2つのパターンがある。

厳密には、ファイル名の付け方(クラス名の付け方?)、“rails g migration <クラス名>“で入力されるクラス名によって、上のどちらのパターンのメソッドでファイルが生成されるらしい。
ただ、このメソッド changeとup/downの違いがいまいちわからなかったのでまとめておく。

間違いがありましたら、コメントいただけますと幸いです。喜んで修正します。

## changeとup/downの違い
違いとしては、“メソッドの中で 使用できる処理“に違いがあるらしい。
Rails公式ドキュメントには以下の処理がchangeメソッドでは使用できるらしい。

現時点では、changeでサポートされているマイグレーション定義は以下のものだけで

元記事を表示

プログラミングと出会って

## はじめに
エンジニアとして就職できたので、これを機に勉強を初めてからエンジニアになるまでのことを書いてみようと思う。
この文章は長いですけど、僕の思いを書いたので是非読んで欲しいなと思います。
10分ほどみなさんの時間を僕に時間をください。

### 自己紹介
年齢:20代前半
学歴:高卒(大学中退)
職歴:正社員の経験なし

## プログラミングを始める前に
まずプログラミングを始めたきっかけを話そうと思います。
当時、資格スクールに通っており、担当の先生に言われるがまま安定した収入とかっこよさに惹かれて公務員を目指しました。
今思えばそれがそもそも良くなかったのかなとも思っています笑
ただ、公務員の勉強は思ったよりもつまらなくて、元々勉強が好きではなかったため、友達とばかり遊んでまともに勉強をしていなかったです。
その結果もちろん受かりませんでした。
担当の先生に,「来年またチャレンジしよ」と言われましたけど、自分はまた勉強しないだろうから同じ結果になるのが分かっていた為、もういいですと言いました。?
そこで担当の先生が勧めてくれたのがプログラミングです。

## プロ

元記事を表示

Rails Devise 「undefined method `current_sign_in_at’」の直し方

# エラー内容

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/324819/1e50b9a7-618c-29d6-cacc-01c2cd9d3952.png)

# エラー原因
deviseの機能の1つであるtrackableに必要なカラムがないためエラーが発生している

# 解決方法①
trackableを使用しない
“`ruby:
class User < ApplicationRecord # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable end

元記事を表示

【RSpec】システムテストでcurrent_userが使えないことを解決する

## 記事の対象者

・RSpecのシステムテストでユーザーの情報を渡す方法を知りたい方

## 前提条件

Ruby 2.6.3
Rails 6.1.5

**< gem >**
・capybara
・rspec-rails
・factory_bot_rails
・faker

## 解決方法の手順
結論、この手順で進めると解決することができました!

・rails_helperにDeviseを記述する(include)
・FactoryBotでUserモデルのダミーデータを作る
・システムテスト画面のbeforeでsign_userを記述する

## 私がハマったところ
devise機能のcurrent_userをテストでも使用できる思っておりました。
しかし、エラーが出てしまうため、アドバイスをいただいたところ、下記のことが判明しました。

**current_user はテスト項目が通らない**

ということで、deviseのヘルパーを使用してuser情報を渡す方法がありました。
1つずつ手順を書いていきます。

## rails_helperにDeviseを記述する(incl

元記事を表示

【RSpec】テスト用のヘルパーモジュールを定義し、テストの種類ごとに読み込む

## はじめに

タイトルの通り、テストの種類(request, model)毎にヘルパーを読み込む方法をまとめておく。

## 結論

`spec/rails_helper.rb` に`config.include ModelSpecHelper, type: :model` などのようにtypeを指定して読み込むモジュールを定義する。

## 詳細

まず、`spec/support/`配下にテストで読み込みたいテストを含んだモジュールを用意する。

spec/support/model_spec_helper.rb

“`ruby
module ModelSpecHelper
def 〇〇
~~~~~
end
end
“`

spec/rails_helper.rbに以下のように

“`ruby
RSpec.configure do |config|
# ~~~~~~
config.include JobSpecHelper, type: :job
config.include ModelSpecHelper, type: :model
co

元記事を表示

Rails モデルの作成方法メモ

Railsのモデル作成方法の備忘録です。

## 環境
macOS Monterey 12.3.1
ruby 3.1.2
rails 6.1.6

## モデルとは
MVC構造のM。DBとのデータの連携を担当する。

## モデル作成コマンド
“`bash:ターミナル
rails g model モデル名 カラム名1:データ型 カラム名2:データ型 …
“`

`g`は`generate`の略。

例: Userモデルを作成する

“`bash:ターミナル
rails g model User name:string email:string
“`

コマンドにより`app/models`ディレクトリ下にモデルファイル、`db/migrate`ディレクトリ以下にマイグレーションファイルが作成される。

## マイグレーションファイルの確認、修正

コマンドにより作成されたマイグレーションファイルを確認する。

“`ruby:(タイムスタンプ)_create_users.rb
class CreateUsers < ActiveRecord::Migration[6.1]

元記事を表示

?【初学者用】RSpecでテストコードを書こう!④【結合テストの簡単な実装例】

# はじめに
①?【初学者用】RSpecでテストコードを書こう!【概念・準備】

https://qiita.com/hondano_gentuki/items/2003971a4f5a97481930

②?【初学者用】RSpecでテストコードを書こう!②【簡単な実装例】

https://qiita.com/hondano_gentuki/items/0a91a595df9c0d76f1cc

③?【初学者用】RSpecでテストコードを書こう!③【コントローラーの単体テスト簡単な実装例】

https://qiita.com/hondano_gentuki/items/7f5a36c08b9785022d33

投稿④になります!
今回は結合テストを行います。

# 結合テストはどんなテスト?
結合テストとは、ユーザの一連の操作を再現して行うテストのことです。今まで行ってきた単体テストは、モデルのみ、コントローラーのみのようにそれぞれの機能ごとのテストでしたが、結合テストでは一連の流れをテストします。
例えばユーザーがログインすることをテストするのであれば、トップページのログインボ

元記事を表示

bootstrapで表示内容を中央揃えにする方法

こんにちは。

みなさんは普段htmlを書いていて、
一つ一つにcssを適用させるのめんどくさいなーと思ったことはありませんか?
本日はbootstropで、col内にまとめたhtmlの表示位置を
一括で管理する方法について理解できたので
アウトプットをしたいと思います。
参考資料も最後の方にあるので、そちらも目を通していただければと思います。

表示させたい内容はこちら![スクリーンショット 2022-06-04 14.34.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2687611/89af7d05-7b30-3fe4-1f9d-72daf0b79785.png)
こちらのDMの表示位置をbootstrapを使って一括管理する方法を
アウトプットしていきたいと思います。
(bootstrapに関しては調べれば出てくると思うのでここでは割愛します)

グリッドシステムを利用した中央揃え

bootstrapのグリッドシステムにより画面が12分割されていることは

元記事を表示

Ruby on railsでFont Awesomeを使用する

## 環境
Ruby 2.6.5
Rails 6.0.0

## 前提
Font Awesomeの会員登録が済んでいる

## 自分のkitsをコピーする
#### トップページ
赤枠で囲った部分を選択する。
![スクリーンショット 2022-06-04 14.41.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2693271/a6598877-7eb9-af6e-72e8-facd82cb5418.png)
#### Your kits
赤枠で囲ったkitを選択する。
![スクリーンショット 2022-06-04 14.45.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2693271/40e61e82-2e4c-732a-7bc6-8279cf6a7d34.png)
#### How to use
赤枠の箇所をクリックしてコピーする
![スクリーンショット 2022-06-04 14.51.27.png]

元記事を表示

学習時におけるRailsのメリットとデメリット

# 取り扱うこと
今回はRailsのメリット・デメリットについて

僕個人としてはすごく大好きな言語
JavaScriptと同じくらい好きです

さてそんなRailsのメリットとデメリットについてご紹介

# 学習時のメリット、デメリット

## メリット

1.規則に従えばそれで動く
2.CRUDアプリを作るなら経験上一番カンタン
3.gemの存在

さて解説

### 規則に従えばそれで動く
上2つは概念的なことでした
次は実用的なこと
少し例えて見ます
逆にわかりにくかったらごめんなさい
あなたは本棚を作ろうとしています
いきなり木材と工具を渡されてもちょっと訳わかんないですよね?
でもRailsは通販で本棚購入して設計図をもとにパーツを組み立てるだけです
多言語だと設計図をまず自分で構想する必要があります
書いてて思ったのですがプラモデルだと思ってください

### CRUDアプリを作るなら経験上一番簡単
CRUDアプリってなんやねん
と思う方もおられると思います
Create,Read,Update,Deleteの頭文字を取ったもので、この機能が使えるアプリを指します
簡単に

元記事を表示

?【初学者用】RSpecでテストコードを書こう!③【コントローラーの単体テスト簡単な実装例】

# はじめに
①?【初学者用】RSpecでテストコードを書こう!【概念・準備】

https://qiita.com/hondano_gentuki/items/2003971a4f5a97481930

②?【初学者用】RSpecでテストコードを書こう!②【簡単な実装例】

https://qiita.com/hondano_gentuki/items/0a91a595df9c0d76f1cc

今日の投稿は③になります!
前回はモデルの単体テストを行ったので今回はコントローラーの単体テストです。

# コントローラーの単体テストはどんなテスト?
モデルのテストでは、インスタンスを生成し、それがモデルに規定した通りの挙動になるか(バリデーションが正しく働くかなど)を確かめます。
コントローラーのテストでは、あるアクションにリクエストを送ったとき、想定通りのレスポンスが生成されるかどうかを確かめます。

## Request Spec
RSpecの導入が完了していれば使用できる、コントローラーのテストコードを書くために特化した手法のこと。

# テストコードの具体的実装
まずはファイル

元記事を表示

RSpecでsessionメソッドを使えるようにするには?

## 背景
フレンドリーフォワーディングのテストをRSpecで行いたい。
編集ページのpathをsessionがちゃんと保持しているのかを確認するために、編集ページのpathと` session[:forwarding_url] `が一致していることをテストしたいが、sessionメソッドを使おうとしたらエラーが発生し解決に時間がかかったので、備忘録として投稿します。

## 失敗したコード
“` spec/system/users_edit_spec.rb
RSpec.describe “Users”, type: :system do
describe ‘PATCH /users’ do
let(:user) { FactoryBot.create(:user) }
.
. #中略
.
it ‘ログインすると、編集画面にリダイレクトされる’ do
visit edit_user_path(user)
#↓ここでフレンドリーフォワーディングのテストをしている
expect(session[:forwarding_url]).to

元記事を表示

【Rails+DynamoDB】Dynamoidの主な使用方法まとめ

# はじめに

[Dynamoid](https://github.com/Dynamoid/dynamoid)は[Amazon DynamoDB](https://aws.amazon.com/jp/dynamodb/)をRailsアプリケーションで利用するためのORMです。
Dynamoidを用いることで、ActiveRecordに近い感覚でDynamoDBにアクセスできるようになります。
この記事ではRailsアプリケーションにDynamoidを導入する手順と主な使用方法をまとめました。

# 導入
Gemfileに以下を追記します。

“`ruby:Gemfile
gem ‘dynamoid’
“`

バージョンについて

AWS SDKとのバージョン互換性は次のようになっています。
| Dynamoid version | AWS SDK version|
|:-:|:-:|
| 0.x | 1.x |
| 1.x | 2.x |
| 2.x | 2.x |
| 3.x | 3.x |

元記事を表示

PostgreSQLで正規表現の逆引き検索

# TL;DR
### 正引き検索
eg: 4桁数字から始まる電話番号を検索する

“`sql
SELECT * FROM users WHERE (tel ~ ‘^\d{4}-‘);
“`

### 逆引き検索
eg: 会員の電話番号から合致するパターンを検索する

“`sql
SELECT * FROM filters WHERE (‘0120-123-456’ ~ regexp);
“`

Railsでの使い方
“`rb
Filter.where(“? ~ regexp”, user.tel)
“`

# はじめに
最近、とある理由で会員の情報から、合致する全てのパターンを検索するというニッチな要望を対応していました。
例えば、会員にメルマガを送信する時、固定電話で登録していた方と、携帯で登録していた方と、法人様で登録していた方にはそれぞれ違う内容で送信したいとかの要望について、今まではハードコーディングでロジックに組み込んでいましたが、管理画面でフィルターを作れません。

そのために、パターンそのものをDBに登録して、一括配信する際に、どのフィルターに当てはまるかを

元記事を表示

【RubyMine】よく使う便利なショートカット10選

# はじめに
私は普段、[RubyMine](https://www.jetbrains.com/ja-jp/ruby/) というIDE(Integrated Development Environment)を用いてMacでRuby/Railsプロジェクトの開発をしています。
そんなRubyMineには便利なショートカットが数多くあります。
中でも、私が普段からよく使うショートカットを一部抜粋して紹介しようと思います。
すべてのショートカットを知りたい方は ▷[こちら](https://resources.jetbrains.com/storage/products/rubymine/docs/RubyMine_ReferenceCard_mac.pdf)。
# よく使う便利なショートカット10選

| 記号 | 意味 |
|:-:|:-:|
| ⌃ |Controlキー|
| ⌥ | Optionキー |
| ⇧ | Shiftキー |
| ⌘ | Commandキー |
## 1. ⌘Click / ⌘B : 宣言場所 ・ 定義元参照
Commandキーを押しながら変数

元記事を表示

Ruby on railsでActive Strageを導入する

## はじめに
今回は、ファイルアップロード機能を簡単に実装できるGemであるActive Strageの導入について記事を残しておこうと思う。ActiveStrageを使用すると、画像などのアップロードを簡単にするメソッドを使用できるようになったり、保存するテーブルを簡単に作成することができる。

## ImageMagickの導入
コマンドラインから画像に処理を加えることができるソフトウェア。これをRailsで扱うには`MiniMagick`というGemが必要。
“`terminal:ターミナル
% brew install imagemagick
“`
## Gemfileの編集
`MiniMagick`と画像サイズを調整する機能を持つ`ImageProcessing`のインストールを行う。
“`ruby:Gemfile
gem ‘mini_magick’
gem ‘image_processing’, ‘~> 1.2’
“`
“`terminal:ターミナル
% bundle install
“`
## ActiveStrageをインストールする
“`termin

元記事を表示

【Rails】【Ruby】form_with で入力された値(params)を取得したい!

## はじめに
未経験からエンジニアに転職しました。
まだまだわからないことだらけですが、毎日楽しく働いています!

業務や個人開発での発見やエラー解決などをアウトプットしています。
初学者向けの内容です。

## やること
Railsの form_with で入力された値を取得して色々操作したい。
今回はサンプルとして
「form_with で入力されたID(数値)を取得して、そのID(数値)を使ってデータを操作する」をやってみる。

# 手順
~~~ruby:view
<%= form_with url: huga_huga_path, method: :patch, local: true do |f| %>

# :hoge_id がparams になる
<%= f.text_area :hoge_id, class: 'textarea' %>
<%= f.submit %>

<% end %>
~~~

![スクリーンショット 2022-06-03 8.31.51.png](h

元記事を表示

OTHERカテゴリの最新記事