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

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

複数の繰り返しメソッドの備忘録

#目的
複数の繰り返しメソッドの備忘録

#結論
6種類あった。
times
for
while
until
each
loop

“`ruby:timesメソッド #回数指定された繰り返し
3.times do
puts “Hello World”
end
=>Hello World
Hello World
Hello World
“`

“`ruby:for文 #オブジェクトから要素を取り出す場合
sum = 0
for i in 1..5
sum = sum + i
end
puts sum
=>15
“`

“`ruby:while文 #条件を自由に指定したい場合
i = 1
while i < 3 puts i i += 1 end =>1
2
“`

“`ruby:until文 #whileではわかりにくい条件を指定したい場合
sum = 0
i = 1
until sum >= 50
sum += i
i += 1
end
puts sum
=>55
“`

“`ruby:eachメソッド #オブジェクトから要素を取り

元記事を表示

rails開発環境からgmailでメール送信する方法

# おおまかな流れ :sunny:
1. gmailの2段階認証プロセスの設定とパスワード取得
2. credentials.yml.encの設定をコマンドラインにて行う
3. 環境設定(config/environments/development.rb)
4. メール作成(Action Mailerのマニュアルに従う)

# gmailの2段階認証プロセスの設定とパスワード取得 :hatching_chick:
![Screenshot 2021-10-23 at 18.57.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1502566/9431b3b2-da2c-eeee-91b3-29ab371d545e.png)

指示通り進め、16桁のパスワードを取得。

# credentials.yml.encの設定をコマンドラインにて行う :koala:
“`
EDITOR=”vi” bin/rails credentials:edit
“`
こちらでエディターのvimを起動。
![Scre

元記事を表示

Refile::InvalidID エラーが起きた時のメモ

## 環境
“`
gem “refile”, require: “refile/rails”, github: ‘manfe/refile’
gem “refile-mini_magick”

Rails 5.2.6
“`

## 1.目標
**Refileの`attachment_image_tag`命令でクラウド上の画像を表示したい。**

## 2.状況
– `attachment_field`フォームで保存した画像を`attachment_image_tag`命令で呼び出そうとしたところ、`Refile::InvalidID in (該当頁)`エラーが発生した。
– マイグレーションファイルに`default: “default.jpg”`等のようなデフォルト値を指定するコードはなかった。(※ https://teratail.com/questions/220379 で、デフォルト値に起因する同挙動エラーの解決報告あり)
– 該当レコードを保存した際にはフォーム・ストロングパラメータ・モデル全てに不手際があった。
– 不手際修正後に作成したレコードを`attachment

元記事を表示

Ruby での JavaScript の圧縮を Uglifier から Terser に変えた

# はじめに

JavaScript を Ruby で圧縮したい。
こういう処理はフレームワーク側でやってくれるので,あまり意識することはないと思うが,たとえば静的サイトを生成するプログラムを自分で書く場合,やり方を知らなければならない。

# 定番 Uglifier

従来,こういう目的には [Uglifier](https://github.com/lautis/uglifier) という gem がよく使われてきた。

執筆時点の最新版は 4.2.0 なので,本記事もこれを前提とする。

使い方は超簡単で,

“`rb
require “uglifier”

puts Uglifier.compile(<<~JS) function average(numbers) { return numbers.reduce( function(sum, number) { return sum + number }, 0 ) / numbers.length } JS ``` とすれば圧縮された ``` function average

元記事を表示

サービス設計について②!

#①.結論!

設計の手順には明確な定義がないため、一般的な「要件定義」→「基本設計」→「詳細設計」の順で説明します!

進むごとに開発しやすいような細かい箇所を決定していくようなイメージです!

ここから前回の続きです!

今回は、「基本設計」と「詳細設計」に着目して進めます!

#②.基本設計

要件定義の内容を、開発に必要な内容へまとめることです!

外部設計とも呼ばれます!

今回の基本設計では、アプリケーション制作に必須の要素となる「画面」や「画面遷移の流れ」をまとめていきます!

#③.詳細設計

実際に書くべきコードを洗い出す作業です!

要件定義や基本設計の情報を元に、ユーザーが行う操作(ボタンを押す、フォームを投稿するなど)に対して行われる処理をすべて書き出します!

その上で、実際どのようなコードを書くかを当てはめていきます!

Ruby on Railsであれば「ルーティングはどういったものがあるか、対応するコントローラーとそのアクションはどういったものになるか、モデルは ~」といった内容を表にまとめると良いでしょう!

#④.画面遷移図

アプリの画面がどのよう

元記事を表示

【Rails】acts-as-taggable-onで作成したタグ機能をseedデータに取り入れる

##目的
自作のアプリにダミーユーザーを作成。
その際acts-as-taggable-onで作成したタグの挙動や見栄えの確認をしていきます。

参考:
[Railsにタグ機能をつける。acts-as-taggable-on使用](https://qiita.com/nakamura999/items/56c6426fc5dd640617ce)
[rails acts-as-taggable-on でタグ付け後、タグを使って検索](https://qiita.com/take1457a/items/90465189140ec77b14be)

##環境
windows10 home
Ubuntu 20.04.1 on WSL2
rails 6.0.3
ruby 2.6.6

##seedデータ作成(失敗)
まずはタグ表示無しでデータが作れるか試してみる。

“`seeds.rb
50.times do
user = User.create!(
name: Faker::Games::Pokemon.unique.name,
email: Faker::I

元記事を表示

モダンJavaScriptを0歳のところから学習していく【初心者】

こんにちは!
テックキャンプでJavaScriptのカリキュラムはありましたが、習ったと言ってもサラッとした内容だったので2、3日前からUdemyでモダンJSを学習中です。そのアウトプットとして記事を書いていきたいと思います。超絶初心者なので間違ってたら言ってください。
何も知らない赤ちゃん状態です。

# var let const
マジ初歩の初歩の変数宣言からやっていきます。

## var
従来のJavaScriptでは変数宣言が行えるのはvarのみでした。
var変数は上書きも再宣言も可能です。

“`javascript
var name = ‘裏梅’;
name = ‘羂索’;
var name = ‘漏瑚さん’;
“`

var変数は上書きも変数宣言も可能なのでプロジェクトが肥大化する中で、意図しない上書きや変数宣言を発生させてしまうというエラーも起こってしまっていたようです。

## let

ES2015で追加された変数です。
letは上書きが可能ですが、再宣言は不可能です。

“`javascript
let name = ‘パンダ’;
name = ‘猪巻棘

元記事を表示

【Rails】【JS】GoogleMapで固定した場所にピンを刺したい!【Geocoder】

# はじめに

この記事では, RailsアプリでGoogle Mapを利用する際に、固定した場所を表示する方法を書き記しています。

特徴は以下です。

1. Google MapのAPIを利用
2. 指定した緯度軽度の場所にピンを刺す
2. ピンの情報ウィンドウをクリックすると指定したページに遷移する
2. 遷移したページの指定した場所に移動できる(sectionタグを用いる)
2. ページ遷移をなくすこともできます!!

[この記事](https://qiita.com/nagase_toya/items/e49977efb686ed05eadb)をもとに、GoogleMapの表示ができていることが前提とします。

#1. Viewを編集する

“`js:posts/index.html.erb