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

Rails関連のことを調べてみた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のデ

元記事を表示

DockerでRails 6 + postgresの開発環境構築

DockerでRails6の開発環境を構築するときにやったこと。
# 対象
dockerについてなんとなく知っていて、これからrails,postgreでwebアプリの開発環境を用意しようとしている方向けです。
自分の備忘録も兼ねて書いてみました。

# 環境
ホスト環境
macOS Caterina 10.15.5
Docker version 20.10.2

構築しようとする環境
ruby 2.7
postgresql 10.7
rails 6.1.1

# rails用のDockerfileの作成
Dockerfileの作成します。DockerfileとはDockerイメージを実行する際に実行するコマンドをまとめたものです。

“`
$ touch Dockerfile
“`
上記で作成したDockerfileに以下のコマンドをお好きななエディタで記述していきます。
まずはベースとなるイメージを設定します。ベースはruby2.7のイメージを使用し、nodeのイメージは後ほど使用します。
また、環境変数LANGを設定します。

“`:Dockerfile
FROM node

元記事を表示

【結合テスト】「本当に削除しますか」の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

元記事を表示

【Rails】本投稿アプリ「Bookers」を作成する【Githubとの連携】

#1.はじめに
初学者のアウトプット用、自分用の備忘録となっています。
・aws cloud9
・Rails 5.2.4
・ImageMagickをインストール(ユーザー画像用)

#2.実装する機能
①ログイン機能
②投稿機能
③ユーザー機能
④いいね機能
⑤コメント機能
⑥フォロー機能
⑦検索機能

“`ruby:
git config –global user.name “GitHubのユーザ名”
“`

#3.Githubと連携する
①cloud9にGithubに設定するSSHkeyを作成する

“`ruby:cloud9
$ ssh-keygen
#入力後、パスワードを求められるが未入力でEnterキーを3回押す。
“`
Githubに登録するキーを表示させる

“`ruby:cloud9
$ cat ~/.ssh/id_rsa.pub
#「ssh-ras」から「xxx-xx-xx-xxx.ec2」のドットの手前の数字までをコピーする
“`

②Githubに登録する
Settings

SSH and GPG keys

New SSH key

・t

元記事を表示

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パターンに

元記事を表示

[Rails Error] ActiveRecord::PendingMigrationErrorの解決方法

#エラーの原因
PendingMigration
移行保留中 = migrateし忘れていますよ〜

`rails db:create` のあと `rails db:migrate` し忘れている可能性があります。

#解決方法
以下を実行してデータベースにデータを反映させましょう。

“`
$ rails db:migrate
“`

元記事を表示

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, -> {

元記事を表示

railsで単一リソースのrouting(resource)を定義するときはダイレクトルーティングも検討する

## 発生する問題
railsのroutingでresourceを定義し`form_with`ヘルパーの`model`引数にモデルのインスタンスを指定するとエラーになる。

## 再現手順

### 1. resourceで単一のリソースのCRUDを作成する
“`ruby:config/routes.rb
Rails.application.routes.draw do
resource :user
end
“`

以下のpathが生成される

“`shell
$ bundle exec rails routes | grep user
new_user GET /user/new(.:format) users#new
edit_user GET /user/edit(.:format)

元記事を表示

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

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

Image from Gyazo

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

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

##実行環境
Rails 6.0.3.4

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

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

元記事を表示

【Ruby on Rails】gem “refile” の画像アップロード先の変更と注意点

# 保存先の変更

Googleの`VisionAI`というAPIを用いてアプリケーションへ投稿画像に対する自動タグ付け機能を実装した際に、`refile`の画像ファイルの保存先を変更する必要があった為、備忘録として本記事を作成。
refileのデフォルトでの画像ファイルの保存先は`tmp/uploads/store`になっており、今回はその保存先を`public/uploads`に変更。

##`config/initializers`階層下にファイルを作成

`config/initializers内`に新たに`refile.rb`ファイルを作成し、以下の記述を行う。
これにより、アップロードされた画像の保存先を変更することが可能。

“`rb:config/initializers/refile.rb
Refile.backends[‘store’] = Refile::Backend::FileSystem.new(‘public/uploads/’)
“`

## 既存のデータがあった場合、`tmp/uploads/store`から`refile.rb`に移す

すでにア

元記事を表示

[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

元記事を表示

【Rails6 / Google Map API】住所を投稿する際に予測変換させる

![map3.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674324/d95c4f55-6068-4e65-76b3-04b66309a881.gif)
# はじめに
なにかサービスを作る上でユーザーのことを考えて作ることって大切ですよね!
マップを使ったサービスを作る時もそうです!投稿する際にいちいちユーザーに住所や地名を打たせるのは胸が痛くなります。笑
そこで今回は地名の予測変換機能を作ってみました!

# つくるもの
今回は以下のような投稿時の予測変換機能をつくっていきます!

![map.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/674324/065222fb-dc93-ab2c-6a9d-e2d5bc0dc9b9.gif)

こんな感じです。

# 用意しておくもの
### 前提知識
今回はマップ表示とマーカーの設置はできてるものとして進めます!
なのでそこの部分に関しては、[こちら](https://

元記事を表示

Google Mapを利用する 【Rails6】【Geocoder】【heroku】

## はじめに

この記事では, RailsアプリでGoogle Mapを利用する方法を書き記しています.

特徴は以下です.

1. Google MapのAPIを利用します
2. APIキーは公開防止のため, .envファイルで管理します.
3. Mapの緯度経度情報をデータベースに登録することで, 場所の投稿サイトを作ることができます.
4. 投稿された内容はMap上にピンを立てるようにします.
5. 場所を投稿すると, 自動で緯度経度を取得し, データベースに登録するようにします.

うまく動作しないときは, ディベロッパーツールのコンソールにエラー文が出力されるため参考にしましょう.

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614347/c67dc709-0630-e30b-f8e5-cd614c26f6dd.png)

## もくじ
1. Google Map APIを利用可能にする
2. MVCを用意する & その他設定
3. herokuにAPIを登録する

元記事を表示

メール動作確認で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で編集をクリックし、以下の画面を出します。
その画面内で以下

元記事を表示

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.下記ファイルに例のようにそれぞれ記載し、

元記事を表示

OTHERカテゴリの最新記事