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

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

【RSpec】expected `User.count` to have changed by 1, but was changed by 0というエラーの解決方法

#対象者

* タイトル記載のエラーに苦しんでる方
* RSpecテストのコードを書いている方

#目的

* エラーを解決して、テストを正常に稼働させる

#実際の手順と実例
###1.前提と現状

![スクリーンショット 2021-09-21 21.18.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1681213/ce96bf4f-b8a5-fbf8-131c-3a6a1e50f900.png)

ユーザーの新規登録が成功するかどうかのテスト実行時にこのようなエラーがでました、、、

直訳すると

““
User.count “が1だけ変化したと思ったら、0だけ変化していた。
““
 
推測すると新規登録が正常に行えず、Userが1人増えなかったということだと思いました。

該当ソースコードは以下の通り

““`spec/system/before_login_spec.rb
describe “ユーザー新規登録のテスト” do
before do

元記事を表示

railsチュートリアル第五章 ユーザ登録用url

###ユーザー登録用url
新規ユーザー用の動作するページが“`/users/new“`にできました。
URLは“`/users/new“`ではなく表のとおりに“`/signup “`にしたいと思います
ユーザー登録URL用に“`get ‘/signup’ “`のルートを追加します

####ユーザー登録ページのルート red

“`rb
Rails.application.routes.draw do
root ‘static_pages#home’
# 何の意味がわからん
# ホーム画面がhomeページなるらしい
get ‘/help’, to: ‘static_pages#help’
# static_pagesコントローラからhomeアクションに紐付けされる
# getでアクセルすることでページを取得することができる
get ‘/about’, to: ‘static_pages#about’
# 何を書いているかはわからない
get ‘/contact’, to: ‘static_pages#contact

元記事を表示

実務未経験者がRailsでアプリケーションを作成してみた【Rails / Vue.js / AWS】

#はじめに
こんにちは、かわらと申します!
この記事は実務未経験者が独学でアプリケーションを作成した内容を解説したものです。
またアプリケーションを作成するにあたり学習した内容もまとめました。

転職活動中のため、ご興味ある方がいましたら下記のtwitterアカウントよりご連絡をいただけると幸いです。
twitterアカウント

GitHubアカウント
https://github.com/kawarazaki3782/teamcare
アプリのURL
https://www.teamcare-app.com/
#目次
・作成したアプリケーション
・学習内容
・心がけたこと
・さいごに
#作成したアプリケーション
アプリ名[チームケア]
介護者同士や介護者と事業者の交流を目的としたSNS

###開発した背景
このアプリの目的は介護者を孤立させないことです。
私は約10年間、介護の仕事をしてきました。
その中で自宅で介護する人が孤立してしまう問題に遭遇してきました。
介護者を支援するサービスはありますが、その存在を知らなかった

元記事を表示

railsチュートリアル第五章 名前付きルート

####名前付きルート
ルートを定義したことにより、レイアウトの中で名前付きルートが使えるようになりました
速、link_toメソッドの2番目の引数で、適切な名前付きルートを使ってみましょう。

“`html
<%= link_to "About", '#' %>
“`
置き換え

“`html
<%= link_to "About", about_path %>
“`
HomeページとHelpページへのリンクを持つheaderパーシャル _header.html.erbから取り掛かります。
headerパーシャルでは、Web共通の慣習に従って、ロゴにもHomeページへのリンクを追加
#####headerパーシャルにリンクを追加する

“`html

元記事を表示

【Rails】FontAwesomeの使い方/アイコンにアニメーションを付ける

FontAwesomeの使い方に関してアウトプットしていきます。
Qiitaへの投稿に不慣れなため、稚拙な部分もありますがご了承ください。

この記事の構成は下記の通りです。
①FontAwesomeのアカウント作成
②FontAwesomeの使用準備
③FontAwesomeの使い方
④アイコンの大きさや色を変えたり、アニメーションを付ける
⑤ブランドアイコン使用時の注意点

# ①FontAwesomeにアカウントを作成する
まずは自身のアカウントを作成する必要があります。
[Fontawesome公式ページ](https://fontawesome.com/)
![409580c4dec3457902a3768a8cbed3b7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1884909/628d3b84-3376-dfb0-4ded-f73c7d28a225.png)

Start for Free:無料。一部のアイコンのみ利用できる。
Get More with Pro:有料。全てのアイコン

元記事を表示

[ruby]約数を足し算する方法

# はじめに
本記事では、私が本日取り掛かった問題を備忘録として記述します。

# 内容
1111111111の約数で、1111以下の約数を足す。

divisor = 約数 by Google先生

“`divisors.rb
def divisors(num, limit)
(1..limit).select{ |i| num % i == 0 }.sum
end

puts divisors(1111111111, 1111)
“`

1~limitまでの約数で` (1..limit)`、
今回の数字(1111111111)がi(ある数)で割ると0になるもの達の`.select{ |i| num % i == 0 }`、
合計`.sum`を出す。

ターミナル上にて、

“`
% ruby divisors.rb
775
“`

`775`が答えです。
なるほど、プログラミングすごい。w

# 終わりに
このような数学の問題、解く分には好きなんですが、
如何せん実力不足の知識不足で、40,50分ぐらいかかります。

もっと経験して、解けるようにしたいと思います。

元記事を表示

[Rails]初のbundle installでmysql2のエラーが出た時の解決策をまとめてみた

# はじめに
開発環境を整えているとき、初のbundle installにて以下のようなエラーが出ました。

“`
Installing mysql2 0.5.3 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

(中略)

Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.

(中略)

An error occurred while installing mysql2 (0.5.3), and Bundler cannot continue.
Make sure that `gem install mysql2 -v ‘0.5.3’ –source

元記事を表示

[Rails] Google Map APIの地図が本番環境で表示されない

# やりたいこと
Google Map APIを使用したPFを本番環境(AWS)にデプロイしたところ開発環境では表示されていた地図が表示されなくなっていた。
![スクリーンショット 2021-09-17 18.16.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/974719/45e36fca-6a4c-6d2e-3635-7bcb64e367f9.png)

本番環境でも地図が表示されるようにする!

# 調査
Google Map APIの設定に不備があるのかなと思ったのでとりあえずググり以下の記事がヒット!

GoogleMapが表示されないエラーが出た時の対処法

設定を確認するも全て設定済‥
Google Map APIには何も罪はなかったです 笑

ここから全く分からずめっちゃハマる‥

# 原因と解決策
結論から言うと地図が表示されないのはAPIキーを`gitignore`している`.env`ファイルに記入してたからでした。
そりゃ本番環境で動くは

元記事を表示

妄想的DHH理解

**Caution**
この記事はDHHファンの妄想によるシナリオが多分に含まれます。 というかほとんどです。
成り立ちが間違ってることも当然あるように思うので話半分で読んでください。

## これは一体

最近のRailsフロントエンドやDHHの活動には一連の流れがあるわけですが、一部トレンドに沿ってない部分がある故にそれが汲めないというところがあるのではと思います。
それらの流れを記憶が定かなうちにつないで記録しておこうという記事です。

## 前提知識

### DHH
Railsの生みの親、Rubyist

### Basecamp(社)
DHHがCTOやってる会社

### Basecamp(サービス)
Basecamp(社)が開発してるプロジェクト管理ツール

## Trixを開発してたある日

Basecamp(サービス)に組み込まれてるリッチテキストエディタの[trix](https://github.com/basecamp/trix)を[customElements](https://developer.mozilla.org/ja/docs/Web/API/Win

元記事を表示

結合テストを書いていく②

#はじめに
前回下記の投稿で結合テストを行うファイルを作成しました。

[結合テストを書いていく①](https://qiita.com/N396184501/items/2c7d75506f555940dab3#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB)

続きから投稿します。

#記述方法

このように前回ではファイルを作成し、exampleを整理しました。
この記述を1つづつ解説します。

“`.users_spec.rb
require ‘rails_helper’

RSpec.describe “新規登録”, type: :system do
before do
@user = FactoryBot.build(:user)
end
context ‘ユーザーが新規登録ができる時’ do
it ‘正しい情報を入力すればユーザー新規登録ができてトップページに移動する’ do
# トップページに移動する
# トップページにサインアップページへ遷移するボタンがあることを確認する
#

元記事を表示

100日後にエンジニア就職するカエル

はじめまして!カエルと言います?

現在就職活動を終えて広告系のベンチャー企業に内定を貰ったのですが、内定者アルバイトとして仕事をしてみるとこれがなんだか自分には合ってないのではないかと思ってしまいました。

そんな中プログラミングに興味を持ちはじめて学習を開始しました。これはそんな僕の学習記録です。

初回ということで
①自分の最終目標とは
②現在はどんな勉強を行なっているのか。
③今後どのように行動していくのか
④今日行った勉強記録
について書いていこうと思います。

まずは①自分の最終目標について
 僕がプログラミングに興味を持ち始めたきっかけは自分の思いを形にできることが面白いと感じたからです!
なので最終目標としてはwebサービスを開発する企業にエンジニアとして就職することです!これを100日後の目標とします!

②現在行なっている勉強について
 これに関しては今は某大学生プログラミングコミュニティに所属してruby on railsを使って擬似Twitterアプリを作っています。

③今後について
 まずは今所属しているコミュニティで作成中のアプリ完成させたいと考えてます。

元記事を表示

[解決]ユーザーの編集ができない→passwordのバリデーションに原因があった

# はじめに
本記事は、現在私が戦っているエラーのないエラーの備忘録です。

## 内容
ユーザーの編集ができなくなってしまった。
1週間前は、普通に編集ができました。
また、特にコードいじってないはずなのに。

[![Image from Gyazo](https://i.gyazo.com/5c59312126510ca9cbb77c3ab1a97586.gif)](https://gyazo.com/5c59312126510ca9cbb77c3ab1a97586)

# コード
コントローラー

“`users_controller.rb
class UsersController < ApplicationController before_action :authenticate_user! def show @user = User.find(params[:id]) @foods = @user.foods.order("created_at DESC") end def followings user = User.fin

元記事を表示

Rails×Reactでユーザー画面の色をアカウントごとに切り替える

#はじめに
SaaS型プロダクトで、管理画面側(Shop)とエンドユーザー側(User)との2つがあるプロダクトを開発しています。管理画面側(Shop)は、Shopアカウントごとにログインを行います。
Ruby on RailsとReact(TypeScript)、Material-UIで開発しています。

#やりたいこと
アカウントごとにそれぞれ別の色を設定し、それが各アカウントごとのエンドユーザー側の画面のマスター色に反映されるようにしたい。
例: アカウントA(ShopA)の色は赤色、アカウントB(ShopB)の色は青色。ユーザーはShopAのエンドユーザー画面に入ると赤色がマスター色(ヘッダーやボタンなど)、ShopBのエンドユーザー画面は青色がマスター色。

#方針
1. Shop_colorテーブルを追加、ShopテーブルがShop_colorテーブルを1つ持つ(has_one)
2. カラーコード(例:#FFFFFF)を一旦追加。
3. RailsControllerで、ShopのShop_colorを取得しReact側に送信、Shop_colorがnullであればデ

元記事を表示

【AWS】 S3アップロード Rails CarrierWave

#目標
s3に画像をアップロードする

#前提
* 画像投稿機能実装済
* AWSアカウント作成済
* CarrierWave使用

# やりた方
####AWSでIAMユーザを作成していきます
①IAMにアクセス→ユーザー追加するを選択
②ユーザー名をきめる
③AWS認証情報タイプの選択で、アクセスキー−プログラムによるアクセスにチェックを入れる→次へ
④既存のポリシーにアッタチを選択
⑤ポリシー検索でS3を入力→ AmazonS3FullAccessを選択
⑥キーとタグは作成せず→次のスッテプ:確認
⑦管理ポリシーがAmazonS3FullAccessになっていることを確認して→ユーザーの作成
⑧アクセスキーIDとシークレットアクセスキーが出てくるので必ずメモするか、csvのダウンロードをしておく→閉じる
これでIAMユーザーが作成できたので、次にS3を作成

####S3バケットの作成

①S3にアクセス S3を選択→バッケット作成選択
②バケット名を選択→他と被らない名前を記入してください
③リージョンはそのままの(東京)ap-northeast-1で
④パブリックアクセスの全

元記事を表示

railsチュートリアル第五章 ルートurl

###RailsのルートURL
名前付きルートをサンプルアプリケーションの静的ページで使うために、ルーティング用のファイル(config/routes.rb)を編集していきます
静的ページについても同様にルーティングを設定

私たちはこれまでに、ルートURLを定義するコードを3回見てきました。
Helloアプリケーションのコード

“`rb
root ‘application#hello’
“`
Toyアプリケーションのコード

“`rb
root ‘users#index’
“`
Sampleアプリケーションのコード

“`rb
root ‘static_pages#home’
“`
いずれの場合においても、rootメソッドを使ってルートURL “/” をコントローラーのアクションに紐付けていました。
ルートURLのようなルーティングを定義することの効果は、“`ブラウザからアクセスしやすくすることだけではありません“`。
それ以外にも、“`生のURLではなく、名前付きルートを使ってURLを参照することができる“`ようになります。
例えばルートURLを定義すると、r

元記事を表示

【Rails/PAYJP】ユーザーとクレジットカード情報を紐付ける方法

プログラミングスクールの最終課題でオリジナルアプリを作成するにあたり、
ユーザーとクレジットカード情報を紐付ける方法を学習したので、アウトプットしていきます。
Qiitaへの投稿に不慣れなため、稚拙な部分もありますがご容赦ください。

前提条件
・Rubyバージョン2.6.5
・Railsバージョン6.0.0
・`gem ‘devise’`によるユーザー管理機能を作成済み。
・公開鍵と秘密鍵の環境変数を設定済み。

# ユーザーとカード情報を紐付ける流れ

①環境変数の確認
②PAY.JPを使えるように設定
③カード登録画面の実装
④jsファイルの実装
⑤cardsコントローラーの実装とバリデーションの設定
⑥登録しているカード情報の詳細ページを作成

# ①環境変数が設定されているか確認する

セキュリティ上、公開鍵・秘密鍵の情報をコードに直接記述できないため、環境変数に設定する必要があります。
ターミナルで環境変数が設定されているか確認します。

“`
% env | grep PAYJP
PAYJP_PUBLIC_KEY=”設定した公開鍵の値”
PAYJP_SECRET_KEY

元記事を表示

妊娠/出産を経て独学から個人でプロダクトを作るまでにやったこと

この度、[iitoko](https://iitoko.online/)という、地方移住のマッチングサイトを開発しました。
(どうしてこのサイトを作ろうと思ったのか、どんなサイトになっているのか、ということはまた別の機会に書こうと思います。)

今回は、独学からこのサイトを開発するに至るまで、
どんな風に勉強してきたのかを備忘録として残しておこうと思います。

#ざっくり系譜
| | 出来事と勉強法 |
|:-|:-|
|2019.4〜| お腹に長女を授かる|
||Progate・ドットインストールで色々とやってみる→日本語のドキュメントが豊富ということでRubyを勉強することにする|
|2019.10〜|産休に入ったことで勉強に本腰。Rubyをチェリー本で勉強。|
|2019.11|出産 〜3ヶ月間は産後の回復と育児で精一杯(チェリー本終わらず)|
|2020.02〜04|少しリズムが掴めてきたので、勉強再開。記憶がなくなったので再びprogate(ruby)から。アプリ版終わったあとWeb版でもう一周。その後チェリー本再開 ~4月にかけて2周やった。|
|2020.04~05|p

元記事を表示

axiosを使った簡単な実装

# axios get postメソッドについて

開発環境
windows10 home
Ruby 2.6.3
Ruby on Rails 5.2.6
vue.js 2.6.14

## axiosとは
ブラウザや node.js で動く Promise ベースの HTTP クライアントである。

インストール

“`
yarn add axios
“`

Vueファイルにインポート

“`
import axios from ‘axios’;
“`
## getメソッド
“`js
import axios from ‘axios’;

methods: {
setMemo: function () {
// axios.HTTP動詞(‘url’)
axios.get(‘/api/memos’)
// .then()で通信が成功した際の処理を書く。
.then(response => (
// Axiosで呼び出したAPIの情報をmemosに代入
this.memos = response.

元記事を表示

Cloud9へTalend API Testerを使ってPOSTしてみた

Cloud9を使ってRailsのアプリ開発をしていた際、APIの動作検証でTalend API Testerを使ってみたので必要な設定等をまとめておく。

## Talend API Testerをインストール
まずはChromeの拡張機能でTalend API Testerをインストールしておきます。
https://chrome.google.com/webstore/detail/talend-api-tester-free-ed/aejoelaoggembcahagimdiliamlcdmfm?hl=ja

Chromeのアドレスバーの右側の拡張機能に**Talend API Tester**が表示されていればインストール成功!

## 使い方
Chromeの右上にある拡張機能でTalend API Testerをクリックすると別タブで開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/849412/71c0aa9d-0667-1534-9804-c5b89cf9aab1.

元記事を表示

OTHERカテゴリの最新記事