Ruby関連のことを調べてみた2021年02月08日

Ruby関連のことを調べてみた2021年02月08日
目次

【Mac&Cloud9対応】Rails newするまでの手順

# 新規Railsプロジェクトの作成(Rails6)
本記事はRuby on Railsで新規プロジェクトを作成する方法を解説したものです。
環境構築が終わっていない方は以下の記事を参考に環境構築を進めてください。

– MacOS
– [0から Ruby on Rails の環境構築【macOS】 (Homebrew のインストールから Rails のインストールまで)](https://qiita.com/techpit-jp/items/1bcd0f4106330b5b827c)
– Cloud9
– [0からRuby on Railsの環境構築【Cloud9】(Rubyのバージョン変更からRailsのインストールまで)](https://qiita.com/techpit-jp/items/ac94b6ed80b77336fdf8)

他にもプログラミング学習に役立つような情報を発信しています![アカウントをフォロー](https://qiita.com/techpit-jp)してお待ちください!

## ゴール
今回の目標は「ローカルサーバーを立ち上げて、Railsのデ

元記事を表示

【結合テスト】「本当に削除しますか」のconfirmダイアログでOKボタンを押す方法

# やりたいこと
結合テストにおいて、削除のリンクを踏んだあとに出現するconfirmダイアログのOKボタンをクリックしたい!

“`
<%= link_to "削除", post_path(post.id), method: :delete, data: { confirm: '本当に削除しますか?' } //投稿の削除ボタン%>
“`
**↓confirmダイアログ↓**
![スクリーンショット 2021-02-08 9.12.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1016288/b121855f-aa19-a362-eb98-b429d793cc10.png)
# 実装方法
“`
page.accept_confirm do
//削除ボタンをクリックする記述
end
“`
**↓記述例↓**

“`
page.accept_confirm do
 all(“.more”)[0].hover.click_link(‘削除’, href: post_path(@pos

元記事を表示

[Ruby on Rails]  ストロングパラメーターの使い方について

地味にめちゃくちゃ大事なストロングパラメーターについて自身の備忘録として書いて行きたいと思います。

### ストロングパラメーターとは一体何?
ストロングパラメーターとは、指定したキーを持つパラメーターのみを受け取るように制限するものです。

**ストロングパラメーター**を使用する理由は、
受け取る パラメーター を制限しなければ、仕様以外のパラメーターも使われてしまうためです。
この状態だと、意図しないデータの更新をされる可能性が発生します。

  

ストロングパラメーターの定義には
**requireメソッド**と、**permitメソッド**を組み合わせて使用します。

##requireメソッド
送信されたパラメーターの情報を持つparamsが、使用できるメソッドです。
requireメソッドは、パラメーターからどの情報を取得するか、選択します。
ストロングパラメーターとして使用する場合は、主にモデル名を指定します。

####params.require(:モデル名)
* 取得したい情報を指定する
* 基本はモデル名でそれ以外のキーも使うことが可能らしい

元記事を表示

railsでタグ付け機能を実装する方法(投稿から編集まで)

# 開発環境
Mac OS Catalina 10.15.7
ruby 2.6系
rails 6.0系

# 前提

– 投稿機能は実装済み(今回の例ではpostモデル)
– 編集機能は実装済み

– 手法として今回はFormオブジェクトモデルで実装します。(1つのフォームからpostsテーブルとtagsテーブルに保存する実装を目指します)

以下が今回登場する各テーブルです。
## postsテーブル

| Column | Type | Options |
| —————— | ———- | ——————————- |
| title | string | null: false |
| explanation | text | |
| category_i

元記事を表示

rails viewについて復習する

##はじめに
ある程度プログラミングの理解が進んできたところで備忘録と復讐を兼ねて振り返ることにした。
viewからviewに移動するやり方を書いていく。

###link_toの使い方
rails routesコマンドを実行するとこんな感じで出てくると思う。
![rails routes.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927542/bfd96a37-7bda-f7d6-0555-fdf0a6890076.png)
この画面からPrefixを確認することができる

“`
link_to ‘リンク名’, ‘Prefix名 + _path’
“`
・viewヘルパーという
・htmlを自動で作成してくれる (href作成をしてくれる)

○リンク名
⇨viewに文字列として表示したことを記述

○’Prefix名 + path’
⇨rails routesのPrefixを使用する (pathが必要)

####【id付きURLパターン時の書き方】
・Prefixに紐づくURLパターンに

元記事を表示

TablePlus で PostgreSQL データベースの確認方法

## TablePlus とは

TablePlus とは、データベース管理ソフトウェアで、MySQL, PostgreSQL, SQLite をはじめとする、さまざまなリレーショナルデータベースに対応した、DB管理のための GUI ツールです。
UI(ユーザーインターフェース)を使ってデータベースを操作したり閲覧することが出来るアプリケーションです。
また、MacOS, Windows,Linux 全ての OS に対応していることも強みです。

## 導入

まずは、下のリンクから各OSにあったダウンロードを行い、インストールをします。
[TablePlus 公式](https://tableplus.com/)

## 接続設定

### DB の選択

アプリを開くと、現在ある DB を確認出来る画面に移ります。
その画面の下の方に” Create a new connection… “と書いてあるボタンがあるのでそちらを押します。
次に使いたい DB を選択し、接続設定をしていきます。

今回は PostgreSQL を使用するのでそちらを選択します。
![Screen S

元記事を表示

Railsの並び替え機能のセキュリティを改善する。

##自己紹介
2回目のQiita記事投稿です。
9月から独学でプログラミング学習を開始し、
11月からスクールを使って学習しています。
現在はポートフォリオの作成中です。
知識を定着させるために、学びをアウトプットします。
また、これから学び始める方の参考になることを願っています。
***
##開発環境
– Ruby 3.0
– Ruby on Rails 6.0.3.4

#並び替え機能のセキュリティを改善する

初めての投稿で
**Railsで並び替え機能を実装する**という記事を投稿しました。
>Railsで並び替え機能を実装する
https://qiita.com/KON-ch/items/7b62fbbe308f6c5dcdec

この記事では、
下記の`sort_list`がViewに表示されることで
直接クエリを発行していました。

“`rb
class Movie < ApplicationRecord scope :sort_movies, -> (sort) { order(sort[:sort]) }
scope :sort_list, -> {

元記事を表示

mapメソッドについて

rubyのmapメソッドというものがどういうものかがよくわからなかったため、リファレンスなどを参考にしながら自分なりにまとめてみました。

参考
[Ruby 3.0.0 リファレンスマニュアル:#collect](https://docs.ruby-lang.org/ja/latest/method/Enumerable/i/collect.html)
[UX MILK様:Rubyのmap, map!メソッドの使い方](https://uxmilk.jp/21695)
[Pikawara様:【Ruby】mapメソッドの基礎から応用をマスターして、効率的なコードを書けるようにしよう!](https://pikawaka.com/ruby/map)

## mapメソッドとは
配列の要素の数だけブロック内で処理を繰り返して新しい配列を返すメソッド

mapメソッドの基本

“`ruby:ruby
配列.map( |変数| 実行したい処理)

#または
配列.map do |変数|
実行したい処理
end
“`

個人的には下の記述の方が見慣れています。
実際に数字を入れてみるとこの

元記事を表示

【Rails6】JavaScriptによる「入力フォームの内容のリアルタイムチェック機能」の実装例

JavaScriptで以下のような「入力フォームの内容のリアルタイムチェック機能」を実装してみたので、その方法を共有します。

Image from Gyazo

ポイントは、jQueryのようなライブラリは使用せず、そのままのJavaScriptで実装したことです。

ネットで検索してみると、意外とそのままのJavaScriptで実装した例を紹介する記事がヒットしなくて、jQueryを使った例ばかりだったので、今回記事にしてみようと思いました。

##実行環境
Rails 6.0.3.4

##各ファイルの記述
今回のメインである「入力フォームの内容のリアルタイムチェック機能」を実装する記述です。

正規表現の`/^[\A\d+\z]/`について補足します。半角数字にマッチする正規表

元記事を表示

[Docker] Ruby2.7.2 / Rails6.0.3 / MySQL8.0の開発環境構築できたメモ

#はじめに
`Ruby2.7.2` / `Rails6.0.3` / `MySQL8.0` のWeb開発環境の構築手順を記しておきます。

– `web`と`db`の 2つのコンテナをたてていきます

– `web`:**ruby2.7**をベースとし、**rails6**に必要なパッケージをインストールするよう記述した**Dockerfile**からimageを構築しコンテナを作る
– `db`:**mysql:8.0**のimageからコンテナを作る

※ **Docker**の基礎は、 [**かめさん**](https://twitter.com/usdatascientist?s=21) の [Udemy講座](https://www.udemy.com/course/aidocker/) で学習しました。
 **コマンド動作**や**記述ファイル**の意図などは講座にて学習するのがいいと思います。

#環境
– macOS Catalina
– Docker version 20.10.2
– docker-compose version 1.27.4

`docker

元記事を表示

Railsで「undefined method `-‘ for “1”:String Did you mean? -@」と表示された時の対処方法

発生した問題

ルーティング(routes.rb)とビュー(answer.html.erb)の間で値渡しを行うコントローラーを記述していた際に問題が発生しました。

エラーメッセージ
>undefined method `-‘ for “1”:String Did you mean? -@

ネットでググり、「undefined method」これは初歩的なスペミスか、定義されていない変数やクラスへのアクセスなどの可能性がある、という情報は理解しました。しかし「-」(マイナス)がメソッドとして「undefined」という意味に戸惑い、状況が理解できませんでした。

“`ruby:question_and_answers_controller.rb
def answer
@course = params[:course]
@scene = params[:scene]
question_number = (@course – 1) * 5 + @scene
qa = QuestionAndAnswer.find_by(id: que

元記事を表示

メール動作確認でmailcatcherインストールする

#はじめに
「[Ruby on Rails5 速習実践ガイド](https://www.amazon.co.jp/%E7%8F%BE%E5%A0%B4%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8B-Ruby-Rails-5%E9%80%9F%E7%BF%92%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89-%E5%A4%A7%E5%A0%B4%E5%AF%A7%E5%AD%90/dp/4839962227/ref=pd_lpo_14_t_0/358-7688472-4798337?_encoding=UTF8&pd_rd_i=4839962227&pd_rd_r=a12eb866-5705-43d9-ade5-337027e22365&pd_rd_w=bWxAO&pd_rd_wg=IwTcZ&pf_rd_p=cb2cef9d-b0a3-4b58-a575-45abfc5e07e8&pf_rd_r=5KXTNYCWFK719GBY9N4M&psc=1&refRID=5KXTNYCWFK719GBY9N4M)」を参考にRa

元記事を表示

Rails 自動フォーマットの使い方

Rails ver6で開発を進める中で、自動フォーマットがあればより早く開発ができます。
そこで自動フォーマットの使い方を説明します。
以下の手順に沿って行ってください。
※使用テキストエディタ:VSCode

#開発環境
・ruby 2.6.6p146
・Rails 6.1.1

#使用拡張機能
・Beautify 1.5.0
・erb 0.0.1
・Prettier Code formatter 5.9.1
・vscode-gemfile 0.4.0

#1.setting.jsonを設定する
①VSCode上で”⌘” + “,”で下記画像の設定検索画面を開き、検索欄でsetting.jsonを入力します。
![スクリーンショット 2021-02-07 14.39.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/628752/8457acf5-facb-d4ba-8967-44fafe0db015.png)

②setting.jsonで編集をクリックし、以下の画面を出します。
その画面内で以下

元記事を表示

セレクトボックスは値(value)でなくキー(key)で保存する

セレクトボックスでデータを保存する際、値でなくキーで保存する方法を紹介します。

### キーで保存するメリット
・セレクトボックスの表示を変えたい場合、データベースに登録しているレコードの値を変更する必要がありません。
・日本語のデータを保存する際に、keyを日本語にする必要がありません(コードの見た目の問題)

### やりかた
`invert`メソッドを使います。ハッシュの`key`と`value`が逆転します。

“`ruby:selectbox.rb
<%= form_with url: users_path do |f| %>
<%= f.select :fruit, { a: "りんご", b: "みかん" }.invert %>
<%= f.submit "保存" %>
<% end %>
“`

`invert`を使った上記コードの場合、
・ブラウザに表示されるのは、「りんご」「みかん」
・保存されるのは、「a」「b」です。

もし、セレクトボックスの表示を変えたくなったら

“`ruby:selectbox.rb
<%= form_with url:

元記事を表示

Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ の解決方法【結論:MySQLの起動】

rails開発中にモデルを作成しようとしたらターミナルに以下の様なエラーが表示されました。昨日までは問題なく作成できていたのに…

“`
Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’
“`

今回はこのエラー解決までの過程を書いていきます。

# 開発環境
Mac OS Catalina: 10.15.7
ruby: 2.6.6
rails: ~> 6.1.0
mysql: 8.0.23

# 結論
MySQLを起動していなかった。

# MySQLでDBを作成したい

“`rails db:create“`を実行してDBを作成しようとしたら以下の様なエラー文が表示された

“`
Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)
Couldn’t create ‘room_anatomy_development’ database. Please check your configur

元記事を表示

[2021年最新]小学生でも分かるAWSのデプロイ手順説明書 後編

# 説明書

[[2021年最新]小学生でも分かるAWSのデプロイ手順説明書 前編](https://qiita.com/ren0826jam/items/0d5583cb5b0d8c2a1ddd)

[[2021年最新]小学生でも分かるAWSのデプロイ手順説明書 中編](https://qiita.com/ren0826jam/items/69448469c060273ce1be)

## 注意点
– (EC2)…EC2内で行う。

– (ローカル)…EC2内で行う。

## デプロイ編

### 手順(前回からの続き)

#### 11.デプロイ先の設定を行う(EC2)

アプリの設置場所を「/var/rails/アプリ名」とする。
Railsアプリの実行はrootではなく、ec2-userで行うので、このディレクトリの所有者をec2-userに設定する。

“`ruby

$ cd /var/
$ sudo mkdir rails
$ sudo chown ec2-user:ec2-user rails
“`

#### 12.下記ファイルに例のようにそれぞれ記載し、

元記事を表示

[2021年最新]小学生でも分かるAWSのデプロイ手順説明書 中編

# 説明書

[[2021年最新]小学生でも分かるAWSのデプロイ手順説明書 前編](https://qiita.com/ren0826jam/items/0d5583cb5b0d8c2a1ddd)

[[2021年最新]小学生でも分かるAWSのデプロイ手順説明書 後編](https://qiita.com/ren0826jam/items/2b7df26f7e02a12b2ff9)

## 注意点
– (EC2)…EC2内で行う。

– (ローカル)…EC2内で行う。

## デプロイ編

### 手順

#### 1.ライブラリのアップデートを行う(EC2)

“`ruby

$ sudo yum update -y
“`

#### 2.タイムゾーンとロケールの設定を行う(EC2)

“`ruby

$ sudo timedatectl set-timezone Asia/Tokyo
$ sudo localectl set-locale LANG=ja_JP.UTF-8
“`

#### 3.NTPの設定を行う(EC2)

“`ruby

$ yum info

元記事を表示

【Rails】RailsのデバッグをVSCodeでできるようにしてみた(M1 Big Sur)

Railsのpry-railsをデバッグ手段として学んだが、binding.pryとコード内に記入するのに違和感があったので別方法を模索
例えばgitに意味のない変更ログが残るリスクがあること
~~一番の理由はデバッグしているうちにコードに書いたことを忘れてしまうこと~~
また調べ物に奔走するのが嫌なのでこれを備忘録として残す!

## 環境

– macOS Big Sur 11.2 M1
– Ruby 2.6
– Rails 6.1.1
– Visual Studio Code – Insiders 1.54.0-insider
– rubyide 0.28.1

## Ruby Extension

拡張機能で「Ruby」と検索すると出てくるこれをインストール

![rails-debug-setup_2021-02-07-10-44-12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528850/c08ef30f-8261-5ac4-8911-1d0f3f519eab.png)

[debu

元記事を表示

AWSでEC2に接続しようとしたら”ssh: connect to host xx.xxx.xx.xxx port 22: Operation timed out”と出た

<はじめに>
転職活動用に制作しているポートフォリオについて、AWSでのデプロイ(SSL認証まで完了)
している状態です。
その後、Action Cableを用いた追加実装を行い、デプロイの前にAWSの設定変更が必要な状況。
connection.rbのファイルの編集が終わり、EC2に接続してNginxの設定変更をしようとした際に
下記エラーが発生。初歩的なことが原因でしたが備忘録も兼ねて簡単に投稿します。

“`
xxxxxxxxxxx@xxxxxxxxxxx .ssh % ssh -i xxxxxx.xxx ec2-user@xx.xxx.xx.xxx
ssh: connect to host xx.xxx.xx.xxx port 22: Operation timed out
“`

<内容>
EC2インスタンスのSSlの送信元の設定に問題があったようです。。
接続したいインスタンスを選択し、「セキュリティ」→「セキュリティグループ」を選択→
「インバウンドルール」の「インバウンドルールを編集」を選択

SSHの「送信元」の箇所(”カスタム””任意の場所””マイIP”3択が表

元記事を表示

【Rails】データを選択して、csv出力する実装から学んだこと

# はじめに

こんな感じで検索結果から、任意のデータを選択してcsv出力なんて機能ありますよね。
![選択結果を出力.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/697823/49870897-63d6-184c-6fc4-595885be9565.gif)
PFで実装してみようと思うものの、やり方を調べてもなかなかヒットせず。。

そこで!
自分なりにこうしたらいいかな?と考え、実装してみました。

本記事では以下の内容について記載していきます。

1. どうやって実装方法を考えたか
2. 処理の流れ
3. 実装から学んだこと

本記事は初学者による投稿です。
もし、もっとこうした方が良いなどありましたら、コメントいただけると幸いです!!

# 環境

**【OS系】**

– macOS Catalina 10.15.7
– Ruby on Rails 6.0.0
– Ruby 2.6.5

**【アプリのモデル】**

– matterモデル

案件管理のため、Matterモデルと

元記事を表示

OTHERカテゴリの最新記事