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

Rails関連のことを調べてみた2020年05月11日
目次

Docker for Windows で Rails 6 + MySQL 8 の開発環境を構築する

## 背景
Windows で Rails の開発環境を作ろうとすると native extension などの関係で `rails new` した直後ですら `bundle install` が動かなかったりするので自分は結構ヤキモキすることが多いです。

解決策として `rails new` から `rails server` まで全て Docker のコンテナ内で完結するようにしているのですが、忘れがちになってしまう作業が多いのでまとめました。

`Docker for Windows` と掲げていますが `Docker for Mac` でも問題ないと思います。
※ が、Macの場合は素直に構築できると思うので Windowsユーザーをターゲットにしています

## ターゲット
– 初学程度の Docker/docker-compose の知識がある人
– Windows で Rails の開発環境をしたい人

## ゴール
– Windows で Rails 6 + MySQL 8 の開発環境が構築できる
– Ruby 2.7
– Rails 6.0.3
– My

元記事を表示

form_withヘルパーのlabelの勘違い【ズボラな初学者向け】

#はじめに
form_withヘルバーを使った学習中に些細なミスでテストが通らなかったため、自戒のためにもここに記しておきます。

#lavelの部分に注目
記述したform_withヘルパーのコードは次のとおりです。どこが間違っているかわかりますか、、、

“`php:

ユーザー登録

<%= form_with model: @user, local: true do |f| %>

<%= f.label :last_name %>
<%= f.text_field :last_name, class: 'form-control' %>
<%= f.label :first_name %>
<%= f.text_field :first_name, class: 'form-control' %>

元記事を表示

HamlとSassでフロント画面を実装する際に出た ActiveController: :Unknown Format inエラーの話

こんにちは! エンジニアになるために日々奮闘中の大学生、ゆーとです 🙂

ポートフォリオ制作のために、まずフロント実装に取り掛かった際に
**ActiveController: :Unknown Format inエラー**が発生してしまい、けっこー苦戦しました。

今回はアウトプットも兼ねて、このエラーから無事ViewにHamlとSassが反映されるまでに行った行動を書きたいと思います!

##ActiveController: :Unknown Format in 〜
ルーティングやコントローラー、ビューを設定し、いざ画面のレイアウトを作ろう!というときにしょっぱなからこのエラーにぶつかる。

Railsのエラー文は、ワード検索(“”で囲み、まんまワード通りの検索結果を表示する)をすると、多くの方が分かりやすく説明してくださっているので、この方法でエラー内容を検索。

そしたらこれは**コントローラー/アクションに対するビューファイルがないよ**というエラーらしい。

##erbファイルをHamlに変換##

しかし、Viewにはコントローラー/アクションの名前に対応したファイル

元記事を表示

【超初心者用】RubyでBINGOカードを作る手順を丁寧すぎるぐらいに書いてみた(1)

#はじめに

“`
B | I | N | G | O
8 | 16 | 36 | 57 | 67
10 | 24 | 33 | 58 | 72
2 | 17 | | 51 | 69
7 | 18 | 45 | 59 | 62
4 | 21 | 37 | 53 | 71
“`

今回、[CodeIQに「ビンゴカード作成問題」を出題しました。みなさんの挑戦をお待ちしてます!](https://blog.jnito.com/entry/2015/02/09/101018)を参考にRubyでBINGOカードを作るを作ってみようと思いました。

しかしですね、インプットしかしてなかった人にはBINGOカードと言えど、これをアウトプットするのは多少なりとも苦戦するのではないでしょうか?

今回は、自分なりに順を追ってどのように作成していったかを記載していきます。
本当に、超初心者用にめちゃくちゃ丁寧に手順を記しています。

『そんな基本的な事・・・』と思わずみていただけると幸いです(笑)

そして何よりも、**手順も考え方も無茶苦茶ではあると思います。**

試行錯誤

元記事を表示

子レコードがないと保存ができない親モデルの連動テストを作ろうとして四苦八苦した話。

#前回までのあらすじ
親モデルと子モデルの単体テストはできたのですが、親モデルが子モデルのレコードがなくても保存できてしまっていることに気付きました。
今回は子レコードが保存できない場合に親レコードで保存できないようにバリデーションを組もうとして四苦八苦したことを記事に残していこうと思います。

#下準備
[前回記事](https://qiita.com/0thefool/items/d38c109a0c2c76feb164)とか[前々回記事](https://qiita.com/0thefool/items/5e5935204c5a62f8bcce)とか[その前の記事](https://qiita.com/0thefool/items/5af0f17f0075e7e0e013)とかの下準備を参照ください。

#今回のテスト環境の準備
###バリデーションの追加
“`validates :images,presence: true“`を追記します。

“`app/models/items.rb
(中略)
validates :title,:images,presence: t

元記事を表示

【メソッド集】 rails メソッド まとめ 基礎 随時追加

#メソッド まとめ 随時更新
参考:https://diveintocode.jp/blogs/Technology/RailsMethod01
参考:https://diveintocode.jp/blogs/Technology/RailsMethod01

##new
“`
hoge.new # DBへ新たにインスタンスを追加
“`
##save
“`
hoge.save # DBへ入力値を保存
“`
##all
“`
hoge.all #DBから関連モデルのデータを全て取得
“`
##find
“`
hoge.find(条件) # DBから条件を見つける
“`
##destroy
“`
@book.destroy #DBの指定のデータを消去
“`
##where
“`
hoge.where(条件) # DBから条件全てを取得
“`

##each
“`
<%= @books.each do |book| %> # 配列でDBからデータを取得
“`

##sort
“`
hoge.sort # 数字:小→大、文字:アルファベット順、並び替え
“`

元記事を表示

【開発ログ⑤】見たことないエラーでビューが表示されなかった話

# 前提について
はじめまして、
プログラミングスクールに通ういりふねと申します。この記事は、スクールの課題である個人アプリの開発の記録を書くことで、自身のアウトプットに利用しています。もし、読んでいただけた方がいましたら、フィードバックをしていただけたら嬉しいです。

開発するのは「有給休暇管理ツール」です。仕様は[過去記事](https://qiita.com/iczo32/items/97ad7d4baa985b3b99ca)をどうぞ。

アプリはデプロイまで行いますが、サービスとして提供するものではありません。あくまでも自学習の一環ですので、ご理解下さい。では本題へどうぞ。

# 今回実施する内容
前回までで、テーブルの作成までが完了しました。今回は、「index,html.haml」のビューページの表示までを目指します。手順は次の通りです。
– ルーティングファイルを編集
– branchコントローラーの作成と編集
– index.html.hamlの作成
– ローカルからrootパスへアクセス
– 表示されていればOK

# 最初は順調
ルーティングの編集、branches

元記事を表示

【開発ログ④】順番が違うマイグレーションでつまずいた話

# 前提について
はじめまして、
プログラミングスクールに通ういりふねと申します。この記事は、スクールの課題である個人アプリの開発の記録を書くことで、自身のアウトプットに利用しています。もし、読んでいただけた方がいましたら、フィードバックをしていただけたら嬉しいです。

開発するのは「有給休暇管理ツール」です。仕様は[過去記事](https://qiita.com/iczo32/items/97ad7d4baa985b3b99ca)をどうぞ。

アプリはデプロイまで行いますが、サービスとして提供するものではありません。あくまでも自学習の一環ですので、ご理解下さい。では本題へどうぞ。

# 今回実施する内容
昨日までで、Railsで新規アプリケーションの作成、データベースの作成までは完了しました。ローカルサーバーを起動し、「localhost:3000」にアクセスしてRailsのトップ画面の表示まではなんとかできているというところからスタートです。

今回の実施内容は以下のとおりです。
– モデルファイルの作成
– deviseの導入
– マイグレーションファイルの編集と実行
– 問題な

元記事を表示

Railsで新規にアプリを作成する

#手順

ターミナルにて

“`
$ rails バージョン new アプリケーション名 -オプション名
“`

で新規アプリを作成することができます

バージョンはアプリケーションをRailsのどのバージョンを用いて作成するのかを指定します。

オプションはハイフンの後に、指定することで様々なオプションをつけることが出来ます。

仮に、Railsのバージョンは5.2.3、データベースをMySQLに指定して新規アプリを作成する場合

“`
$ rails _5._2._3_ new アプリケーション名 -d mysql
“`

となります。

オプションの種類は様々ですので調べてみて下さい。

これで新規アプリケーションは作成できましたが、データを蓄積するにはデータベースが必要です。

[webアプリケーションの仕組みはこちら](https://qiita.com/kouhei_matuura/items/ff6e86e80379deb864cf)

#データベースの作成

webアプリケーションはクライアント(今使っているPCなど)とサーバー(アプリケーションとデータベ

元記事を表示

vue+railsプロジェクトに、firebaseauthを導入する

# vue+railsプロジェクトに、firebaseauthを導入する
vue+railsで、CRUD処理のアプリを作っていましたが、認証部分を手軽に付け足したいと思い、firebaseauthを導入してみました。
## なぜfirebaseを使ったか?
rails単体のアプリであればdeviseを使っていました。今回フロント部分は全てVueで書いている為、deviseが用意するerbファイルをvueに置き換える方法が分からなかったので、簡単に認証機能を提供できるfirebaseを使ってみました。
今回は、サインアップ、サインイン、サインアウトを全てfirebaseにお任せしたいと思います。

##手順
必要な機能を実装し終わった想定で進めていきます。

“`shell:環境
$ node -v
v12.1.0
$ vue -V
@vue/cli 4.3.1
$ yarn -v
1.22.1
“`

##プロジェクトにfirebaseを導入する
1.firebaseコンソールにログインする
2.「プロジェクトを追加」
– プロジェクト名:任意の名前
– Googleアナリティクス

元記事を表示

【rails】RSpec,factory_botを用いてテストを行う

### factory_bot_rails導入

gem factory_bot_railsを、RSpecと同じ環境に追加する。

“`ruby:Gemfile
group :development, :test do
# Call ‘byebug’ anywhere in the code to stop execution and get a debugger console
gem ‘byebug’, platforms: [:mri, :mingw, :x64_mingw]
gem ‘rspec-rails’
gem ‘factory_bot_rails’
end
“`

“`console:terminal
$ bundle install
“`

ディレクトリ spec/factories を作成する。
ファイル users.rbを作成する。
テストで使うuserクラスのデフォルトインスタンスを定義する。
※テストの際に、一部を変更して使う。

“`ruby:spec/factories/users.rb
FactryBot.define do

元記事を表示

ネストしているモデルに対するform_withの書き方

#ネストしているモデルに対するform_withの書き方

ネスト関係にある投稿記事(Postモデル)とコメント(Commentモデル)でcommentを投稿するformファイルでエラーが発生した際の対処法をまとめます。

“`ruby:routing
resources :posts do
resources :comments
end
“`
“`ruby:問題のコード_form
<%= form_with(model: comment) do |form| %>

<%= form.label :content %>
<%= form.text_field :content %>

<%= form.hidden_field :post_id, value: post.id %>

<%= form.submit %>

<% end %>

“`
comments_pathというパスが見つからないというエラ

元記事を表示

RailsでAPIを作ってみた(後編)

こんにちは!モリタケンタロウです!
[前回](https://qiita.com/MORITAKENTARO/items/4c52276b74cd3620886e)に引き続き、Ruby on RailsでAPIを作る方法について紹介します。

* [RailsでAPIを作ってみた(前編)](https://qiita.com/MORITAKENTARO/items/4c52276b74cd3620886e)

# 開発環境
* ruby 2.6.3p62
* Rails 5.0.7.2

# Let’s Try Anyway
前回は、コントローラーの作成とルーティングの設定を行いました。
今回は、モデルの作成とCRUD処理の実装を行います。

## モデルを作成
まずは、モデルを作成します。
といっても、今回は単純にテキストを格納する箱を用意してあげるだけです。

“`bash
$ rails g model content text:string
“`

モデルを作成したら、DBにモデルの定義を反映させます。

“`bash
$ rake db:migrate
“`

ちゃん

元記事を表示

RailsでAPIを作ってみた(前編)

こんにちは!モリタケンタロウです!
今回はRuby on RailsでAPIを作る方法について紹介します。

後編は↓

* [RailsでAPIを作ってみた(後編)](https://qiita.com/MORITAKENTARO/items/8cf03f876907a9b15530)

# 開発環境
* ruby 2.6.3p62
* Rails 5.0.7.2

# Let’s Try Anyway
今回はひとまず、コントローラーの作成とルーティングの設定を行います。

## APIモードでRailsアプリを作成
今回はAPIモードでRailsのアプリを作ります。
Ruby on Railsで普通にアプリを作ろうとすると、MVCモデルを前提に色々と部品を用意してくれますが、APIモードで作成することで、ViewとかAPIに要らないものを除いた最小構成でアプリを作ることができます。

“`bash
rails new rails_app -d mysql –api
“`

ちなみにDBはMySQLを採用しています。
※何かとエラーが出た場合は↓を試してみてください。

元記事を表示

Rubyの環境構築

# 新規アプリ作成

#Homebrewのインストール
[macOS用パッケージマネージャー — Homebrew](https://brew.sh/index_ja.html)

#Homebrewのバージョン確認

“`
brew -v
“`

#rbenv ruby-buildのインストール

“`
brew install rbenv ruby-build
“`

#rbenvのバージョン確認

“`
rbenv -v
“`

#rbenvの設定

“`
$ echo $SHELL
“`

↑の実行結果に応じて次のコマンドが変わる。

実行結果が /bin/bash の場合、以下のコマンド

“`
$ echo ‘eval “$(rbenv init -)”‘ >> ~/.bash_profile
$ source ~/.bash_profile
“`

実行結果が /bin/zsh の場合、以下のコマンド

“`
$ echo ‘eval “$(rbenv init -)”‘ >> ~/.zshrc
$ source ~/.zshrc
“`

#イン

元記事を表示

Railsの学習を始めるのでDockerで環境構築【備忘録】

# 前提

### ローカル環境
* macOS Mojave10.14.6
* Docker for mac 2.2.0.5

### バージョン
* Ruby…2.6.3
* Rails…5.2.4.1
* alpine

### その他

# プロジェクト用ディレクトリを用意

“`
$ mkdir myapp
$ cd myapp
“`

# ファイル作成

“`
$ touch docker-compose.yml Dockerfile Gemfile Gemfile.lock
“`

# 各ファイルを編集
* .env.example

“`
DB_NAME=myapp
DB_TEST_NAME=myapp_test
DB_USER=admin
DB_PASS=admin
DB_ROOT_PASS=password
TZ=Asia/Tokyo
“`

* docker-compose.yml

“`
version: “3”
services:
app:
build: .
volumes:
– .:/var/www/

元記事を表示

【Rails】デプロイ後に「We’re sorry, but something went wrong.」のエラーが出る

Railsでアプリを作成し、AWSにデプロイした際に不具合があるとこんなエラー画面が表示されます。
こいつめっちゃ腹立ちますよね。だってどこがおかしいのかすぐに教えてくれないんですよ。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608061/601560cd-6af0-02e9-16e8-d74cf9a35d57.png)

#エラー原因の確認方法

しょうがないので自分で何がおかしいのかを確認します。

“`Rails:ターミナル
[ec2-user@ip-~~]$ cd /var/www/(アプリ名)/current/
[ec2-user@ip-~~ current]$ less log/production.log
“`

ログを見ていくと、下記のようなエラー文を発見

*ActionView::Template::Error (The asset “(画像ファイル名)” is not present in the asset pipeline.):*

今回は画

元記事を表示

【手書きノート】自粛期間に復習したこと~Ruby~

####コロナの影響による自粛期間を利用して復習をしました。Goodnotes5を使っています。

![Ruby-1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/516627/0f777749-a3e2-8d3e-aeec-095ad9f33e80.jpeg)
![Ruby-2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/516627/085ca395-fb22-902d-f086-2bfd3b2c0cae.jpeg)
![Ruby-3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/516627/fcaed08c-7669-b1bb-30f2-2525572ab2c3.jpeg)
![Ruby-4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/5166

元記事を表示

bundle exec rake db:migrateって何をしているの?

今までは`rails db:migrate`を使用していましたが、学習する教材によっては

“`
bundle exec rake db:migrate
“`
としているので、コマンドがどのような意味を持っているのか調べてみました。

##まず、`bundle`ってなに?

`bundler`というGemを利用する際に使うコマンドです。
`bundler`はGemの依存関係を解決するためのGemです。

> Bundlerは、必要なgemとバージョンを正確に追跡してインストールすることにより、Rubyプロジェクトに一貫した環境を提供します。
 Bundlerは依存関係の地獄からの出口であり、必要なGemが開発、ステージング、およびプロダクションに存在することを保証します。プロジェクトの作業を開始するのは簡単bundle installです。
bundlerの公式HPよりGoogle翻訳 https://bundler.io/

##`exec`とは?
> #####実行 【 execution 】 run / execute / exec / エグゼキューション
 プログラムの

元記事を表示

ドットインストールRails入門編をcloud9でやってみる:その1

Railsチュートリアルがあまりに意味不明だったので、小休止&復習を兼ねてドットインストールの入門編のブログ作成にトライしてみようと思います。

チュートリアルをもう一回、やるつもりなので環境はチュートリアルのママでいきたく思います。

##環境について

“`ruby
ec2-user:~/environment $ ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]
ec2-user:~/environment $ sqlite3 –version
3.7.17 2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668
ec2-user:~/environment $ rails -v
Rails 5.1.7
“`

こんな感じです。

##最初のメモアプリ作成に関して

“`ruby
$ rails g scaffold Memo title:string body:text
“`

スキャッフォードで簡単に生成。
きちんと生成さ

元記事を表示

OTHERカテゴリの最新記事