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

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

ActiveRecord::RecordNotFound in HogeController#アクション Couldn’t find Board with ‘id’=n というエラーの原因

※完全に私の備忘録です。

アウトプットの習慣を身につけるために書いています。

実現したいこと

Ruby on Railsに置いて削除機能を実装したい

遭遇したエラー

“`
ActiveRecord::RecordNotFound in BoardsController#show

Couldn’t find Board with ‘id’=8
“`

該当ソースコード

“`ruby:/controllers/boards_controller
class BoardsController < ApplicationController def destroy @board = Board.find(params[:id]) @board.destroy redirect_to board_url, notice: '掲示板が削除されました!' end end ``` ```erb:/controllers/boards_controller

元記事を表示

【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】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分ぐらいかかります。

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

元記事を表示

[Ruby] AtCoder過去問 D – Caracal vs Monster

##はじめに
AtCoder過去問D問題にRubyで挑戦してみました。
よろしくお願いします。

問題はこちらから確認してください。↓

https://atcoder.jp/contests/abc153/tasks/abc153_d

##D – Caracal vs Monster
まずは入力を受け取ります。
その後処理に使用する変数xとx_aryという配列を準備します。

“`ruby
h = gets.to_i

x = 1
x_ary =[1]
“`

実はこれの答えはある程度答えが限られています。
例えばhが2であれば答えは3です。
hが3であっても答えは3です。

もしhが4だったら答えは7です。
5でも6でも7でも答えは7です。

hが8になると答えは15です。これもhが15までは答えは15なのです。

x_aryにmaxの“`1099511627775“`までの答えの数字を配列として入れていくのです。(10の12乗がこの数字)

先ほどのxとx_aryを利用してこれを表現します。

“`ruby
h = gets.to_i

x = 1
x_ary =[

元記事を表示

HTMLとCSSの役割と基本!

#結論!

HTMLは、Webサイトやアプリケーションなどの画面上に表示する『文字』『画像』『リンク』などの情報を記載する言語です!

CSSは、Webページの『文字の大きさ』や『色』を装飾するための言語です!

他にも『背景の色』や『レイアウト』なども指定することが出来ます!

#拡張子について!

拡張子とは、ファイルの種類を識別する為に、ファイル末尾につける文字列のことです!

例を書くと、HTMLのファイルであれば.html、CSSのファイルであれば.cssとなります!

#まとめ

それぞれを簡単に言うと!

HTML = ウェブサイトに表示される情報を記載する言語!

CSS = Webページの文字の大きさや色を指定することができる言語!

拡張子 = ファイルの種類を識別するためにファイル末尾につける文字列!

こんな感じですね!

ベテランの方からすれば、基本中の基本ですが、、、

まずは基本的な意味合いから、しっかり復習して行こうと思います!

何か説明で間違っていたらご指導お願い致します(_ _)

元記事を表示

Numo::NArray で二項演算としての最大値・最小値の計算

Ruby の多次元数値配列ライブラリ [Numo::NArray](https://ruby-numo.github.io/narray/) で**2つの配列を要素毎に二項演算したい**際、演算子のあるもの(例えば `ary1 + ary2` )は直感的ですぐわかるのだが、そうではない**最大値や最小値**の演算はどうすればいいのかわからなかった。インスタンスメソッドの `#max` などは、その配列内の要素を返すものであり二項演算ではない。

あるときAPIリファレンスのメソッド一覧を眺めていたら、それらしい名前のメソッドが目に留まった。ドキュメントには何の説明も無く自信を持てなかったが、調べたところ合っていそうなのでメモとして残しておく。

確認バージョン: 0.9.1.6 ( AtCoder で使えるもの)

## 計算方法
クラスメソッド `Numo::Int64.maximun(*args)` の類を使う。数値の型は自動で決定(拡張、upcast)してくれず、クラスを指定しなければならない。

“`ruby
require ‘numo/narray’

ary1 = Num

元記事を表示

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

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

[結合テストを書いていく①](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
# トップページに移動する
# トップページにサインアップページへ遷移するボタンがあることを確認する
#

元記事を表示

bootstrap btnがリロードしないと表示できない>>>三項演算子

三項演算子

枠だけ色付きのボタン、編集/editページに行くと選択していたボタンが選択されない&リロードすると選択していたボタンが表示される

検証ページ見るとcheckedになっている

“`html:edit.html.erb
 
“`

https://qiita.com/lasershow/items/160c854e4256ba596ec5

“`html:edit.html.erb

`

元記事を表示

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であればデ

元記事を表示

【mac/Ruby】csvファイルの文字化けを解消する

###1.背景
ポートフォリオ作成にあたり、csvファイルからデータを取り込みたいと考えました。
ダウンロードしたcsvファイルをクリックした時には(`Numbers`でファイルを開きました。 ※`このアプリケーションで開く`で設定していたため。)
問題なかったのですが、いざ該当のディレクトリに入れてクリックしたら文字化けが凄かったです。

※画像はイメージです。

これじゃ使えない!と思い解消方法を探しました。

###2.環境

– mac.os バージョン10.15.6
– Ruby 2.7.3

###3.実際やった方法
[こちら](https://support.freee.co.jp/hc/ja/articles/115002727126-CSV%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%

元記事を表示

【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/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

元記事を表示

rbenvでRubyのversionが変わらなくて悩んだ原因はシェルだった。

# 背景
Homebrewおよびrbenvをインストールし、

“`
$ rbenv global 3.0.2
“`
Rubyのversionを2.6.3から3.0.2へ更新しました。

しかし、ターミナルを一度閉じてしまったり、iTermやVSCodeなど他のCLIで「ruby -v」コマンドでRubyのversionを確認してみても、2.6.3のままでした。

[Rubyのバージョンが切り替わらない時の対処法!](https://qiita.com/opiyo_taku/items/3312a75d5916f6cd32b1)を参考に「.bash_profile」を書き換えた後、「source ~/.bash_profile」コマンドを実行してみましたが症状は変わらずでした。

# 原因
シェルがbashではなくzshだったため、「.bash_profile」にRubyの参照先を書いても起動時に読み込まれないことが原因でした。

[rbenvでRubyバージョン切り替える【仕組みまで理解】](https://ichitasu.com/ruby-rbenv/)を参考に「.zs

元記事を表示

[Ruby] Array#permutation

##はじめに
Rubyのpermutationメソッドについて簡単にまとめたいと思います。
よろしくお願いします。

##permutationメソッド
これは配列の中の組み合わせを全て作ってくれます。
返し方は配列の中に配列を作って一つの組み合わせを表現します。

また、要素が同じで順番が違っていた場合も違う組み合わせとして扱われます。

“`ruby
a = [1, 2, 3]
a.permutation.to_a

=> [[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]]
“`

また引数を渡すとその渡された数字分で組み合わせを出します。

“`ruby
a = [1, 2, 3]
a.permutation(2).to_a

=> [[1, 2], [1, 3], [2, 1], [2, 3], [3, 1], [3, 2]]
“`

参考: https://docs.ruby-lang.org/ja/latest/method/Array/i/permutation.html

元記事を表示

WindowsのWSL2環境にRailsをローカルインストールする

# 概要

WSL2に構築したCentOS環境上に、Railsをインストールする。
環境を汚したくないので、グローバルのgemではなくローカルにインストールする。

# 前提

* WSL2にLinux環境を構築している
* rbenvでrubyを管理している

# 環境

* OSはCentOS 7.9
* ruby versionは2.7.4
* bundler versionは2.1.4(rubyに内包のバージョン)

# やりたいこと

* Railsをローカルにインストールしてアプリケーションのベースを作る

# 手順

### 事前準備

root権限(またはsudo)で `g++`と`MySQL` をインストールしておく。

“`
# yum install gcc-c++
# yum install mysql-devel
“`

### ディレクトリ作成

ディレクトリを作成し、その中で作業する。

“`
$ mkdir rails_application
$ cd rails_application
“`

### Gemfileの作成

下記コマンドを実

元記事を表示

redmineのアップデート3.1から4.2

ダメ元でやってみようと思ってやってみたらできた。笑

(当初は、【STEP1】マイナー更新(3.4.x)【STEP2】メジャーの一番古いのに更新(4.0.x)【STEP3】メジャー最新(4.2.x)に順次更新していけるところまでいってみようと考えてましたが、Redmine、Ruby、Railsの関係とかややこしかったので面倒になりました。幸運でした。)

# 環境(移行元、移行先)

| # | 移行元 | 移行先 |
|:-|:-|:-|
| Redmine | 3.1.0 | 4.2.2 |
| Ruby | 2.0.0 | 2.7.4 |
| Rails | 4.2.3 | 5.2.6 |
| Webサーバ | Apache2.4 | Apache2.4 |
| Appサーバ | passenger 5.0.30 | Unicorn 6.0.0 |
| OS | Amazon Linux2(x86_64) | Amazon Linux2(ARM64) |
| DB | RDS/MySQL8.0 | RDS/MySQL8.0 |

※プラグインは、[v

元記事を表示

OTHERカテゴリの最新記事