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

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

便利❣️Rails開発がスムーズになる機能!

現在私はdocker環境下でRuby on Railsで自社サービスの開発を行っており、
dockerを使用した方ならご理解頂けると思うのですが、、、

_人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人_
> ?docker関連のコマンド反応がめっっっっっっっっっっっちゃ遅い!!!? <
 ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄

特に以下のケースを確認する時に時間がかかるとイライラします。。

– コントローラに渡すパラメーターの中身を確認したい。

– 呼び出しているActive Recordの種類。

– render元のファイル。

とまあいろいろあるのですが、とにかく以下から始まるコードはとにかく遅いです。
(この前migrationファイルを作成するのに約10分かかりました。。)

“`
$ docker-compose run ~
“`

元記事を表示

【Rails/AWS】RDSのMySQLに繋がらないエラーの考えられる原因(database.yml)

# はじめに
本記事は、RailsアプリをAWSにデプロイした際に発生する可能性のある
MySQLに繋がらないという事象に対する原因例を紹介します。
原因はかなり初歩的な原因でしたが、筆者はこのエラー原因が特定できずとても苦労したため、
今後同じエラーに遭遇した方の助けになれば幸いです。

# 開発環境
+ Ruby 2.5.1
+ Rails 5.2.4.4
+ AWS(EC2, RDS)
+ MySQL(RDS) 5.6.48

# 前提条件
+ RailsアプリをEC2のWebサーバー上にgitクローン済み。
+ 基本的な設定は完了済みで、rake db:create RAILS_ENV=productionのコマンドを実行する手前の状態。
+ RDSのDBインスタンスを作成済み。
+ Railsのdatabase.ymlは下記の内容です。

“`database.yml
default: &default
adapter: mysql2
encoding: utf8
pool: <%= ENV.fetch("RAILS_MAX_THREA

元記事を表示

POSTMAN で画像を投稿する

#はじめに
これまでテキストデータを投げることばかりしていたので
初めて画像投稿機能をやるときに、ちょっと手こずりました
##方法
パラメーターに次のように記載すると出来ました!

パラメーターの名前[要素名]

なので今回は、image[cat_photo]といった具合に記載しました。
下のようにデータ登録した上でSendするといいです。
![スクリーンショット 2020-11-08 9.33.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/639411/81f8f3cc-33bb-2a79-ccb4-8c45c4362911.png)
データベースを確認、、、
ない!と思ったら
![スクリーンショット 2020-11-08 9.41.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/639411/85aab610-11a5-cc77-a0e2-5540947248fb.png)
a

元記事を表示

MacでVSCode Remote ContainersをCLIから直接開く

## 仕組み
一度VSCode Remote Containersを開いた後 `cat ~/Library/Application\ Support/Code/storage.json` の
`windowsState` > `lastActiveWindow` > `folder` を見ると以下のような感じになっているのが分かります。

“`json
“windowsState”: {
“lastActiveWindow”: {
“folder”: “vscode-remote://dev-container%2B2f557365722f6e616d652f646576656c6f702f70726f6a656374/usr/src”,
“backupPath”: “…”,
“remoteAuthority”: “dev-container+2f557365722f6e616d652f646576656c6f702f70726f6a656374”,
“uiSt

元記事を表示

【RSpec】Shoulda-Matchers で独自に設定したエラーメッセージをテストする方法

shoulda-matchersを使ってカスタムメッセージのバリデーションテストをするとき、書き方がわからなくて少し詰まったのでここに共有させて頂きます。

# shoulda-matchersとは何ぞや?
shoulda-matchersというのは、通常のRSpecで書くと長くなるテストが簡潔にかけるようになるgemです。

例えば以下のようなバリデーションを持ったモデルがあったとします。

“`ruby:user.rb
class User < ApplicationRecord validates :nickname, presence: true, length: { maximum: 30 } end ``` このテストが以下のように一行でかけます。 ```ruby:spec/models/user_spec.rb it { is_expected.to validate_length_of(:nickname).is_at_most(30) } ``` なかなかに便利ですね。 # 独自に設定したエラーメッセージをテストしたい場合 例えば以下のような、独自のエ

元記事を表示

ruby小文字を大文字にする

#Rubyで小文字を大文字にする
半角アルファベットの小文字で構成された長さ t の文字列 y が与えられます。

文字列 y を大文字に変換して出力して下さい。
#入力される値
入力は以下のフォーマットで与えられます。

y
#期待する出力
y を大文字に変換した文字列を出力してください。
#入力例1
qiita
#出力例1
QIITA
#私の答え
“`java:
y = gets
puts y.upcase
“`
#今回のポイント
###1行目のgetsで文字列を取得しています
###2行目で取得した文字列yをupcaseメソッドで出力しています
###upcaseメソッドは小文字→大文字にするメソッドです。ちなみにその逆はdowncaseメソッドです。
“`java:
y = “AAAAA”
puts y.downcase
“`
“`java:出力結果
▶︎ AAAAA
“`
###となります。
###他にも小文字のみ

元記事を表示

railsのメソッド”redirect_to”がどう定義されているのか読解してみた

railsメソッドの定義を解釈することで、rubyらしい書き方を学ぼう企画第二弾です。
今回のテーマは[redirect_to](https://api.rubyonrails.org/v5.1.7/classes/ActionController/Redirecting.html#method-i-redirect_to)

#redirect_toの定義

“`ruby
# File actionpack/lib/action_controller/metal/redirecting.rb, line 56
def redirect_to(options = {}, response_status = {})
raise ActionControllerError.new(“Cannot redirect to nil!”) unless options
raise AbstractController::DoubleRenderError if response_body

self.status = _extract_redirect_to_stat

元記事を表示

Railsを全般的に日本語化する方法

#はじめに
 今作成中のアプリケーションが、なるべく英語で表現したくなかったので、調べてまとめた。

##流れ
1. Gemを記述
2. bundle install
3. ファイル生成
4. 必要に応じてファイルを修正

###1. Gemを記述

“`ruby:Gemfile
gem ‘i18n_generators’
“`
上記のGemを追加

###2. bundle install
例によって、ターミナルで

“`bash
bundle install
“`
を実行する。
###3. ファイル生成
同じくターミナルで、

“`bash
rails g i18n_locale ja
“`
を実行する。
このコマンドによって、
config/locales/ja.yml
が生成される。
###4. 必要に応じてファイルを修正

l(エル)メソッドで時刻を表示する際の時刻表示を変えたい場合は、
204行目に修正を入れると、よい。
また、表示場所によっていつくかのパターンを用意したい場合も、205・206行目でカスタマイズが可能。

##最後に
 日本語の独自の単位をカ

元記事を表示

VSCodeで自動整形するコマンド(ショートカット)

#はじめに

先日VScode(Visual Studio Code)の便利なショートカットを知りましたので共有します?

自動でインデントやカンマの抜けなどを整えてキレイにしてくれるコマンドです。

コマンドは**【option + shift + F】**です!

これだけで自動整形してインデントなどの見た目をキレイにしてくれるのですが、いくつか注意点があります。

#注意点

まずこのショートカットはすぐに使えるというわけではなくフォーマッターと言うVScodeの拡張機能をインストールする必要があります。
フォーマッターとは以下のようなものです。

**「Weblio辞書」**
フォーマッター【formatter】
ハードディスクや各種記録メディアを初期化(フォーマット)するためのソフトウエア。

【引用元URL】
https://www.weblio.jp/content/Formatter

ですが初期化(フォーマット)すると言われてもイマイチ自動整形とは意味が違うと思って他にも探して

元記事を表示

【実装手順】Railsでsorceryを使ってユーザー認証機能を作る

Railsで認証機能を実装するときに手こずったのでメモ

#作業環境
– Mac
– ruby 2.6.5
– rails 5.2.3
– bootstrap4

#sorceryとは
Railsに認証機能の実装を行うためのライブラリ。
同じように認証機能としてdeviseなどが挙げられるが、sorceryの方がよりシンプルで、カスタマイズ性に富んでいるという特徴を持つ。
[sorcerのgithubはこちら](https://github.com/Sorcery/sorcery)

#実装手順
###sorceryのインストール

“`ruby:Gemfile
gem ‘sorcery’
“`

“`ruby:ターミナル
$ bundle install
“`

###Userモデルとマイグレーションファイルを生成

“`ruby:ターミナル
$ rails g sorcery:install
“`
上記のコマンドを打つことで、userモデルとデーターベースのmigrationファイルが生成される。
・`app/models/user.rb`
・`config/initi

元記事を表示

【Ruby on Rails5】WorkMailを使って独自ドメインのメールアドレスを設定する。【WorkMail】

## 環境
Ruby 2.5.7
Rails 5.2.4

### gem
gem ‘dotenv-rails’

### 前提
[Qiita – シンプルにお問い合わせ機能を実装する](https://qiita.com/s_rkamot/items/d6d0e9abb43383342fd6)
こちらの記事を参考に書き換えていく流れになります。
事前にGmailアカウントでの実装と動作確認をしてもらってから、今回ご紹介するやり方を実践いただければと思います。

独自ドメインは取得済みです。
AWSは登録済みです。

## 経緯
独自ドメインを取得したので、どうせならお問い合わせからの送信されたメッセージは独自ドメインで取得したメールで受信したいと思って今回の実装に至りました。
しかし、ネットを調べると、Gmailを例にした実装方法ばかりでしたので、今回はそれを応用していきたいと思います。

## 手順
1.独自ドメインを取得する
2.取得した独自ドメインを使って、AWS WorkMailでメールアドレスを取得する
3.WorkMailのSMTP設定を反映させていく(受信メールサーバー

元記事を表示

【Rails】Rubocop実行時の「Use hash rockets syntax」を回避する方法

## 「Use hash rockets syntax」が大量に出てしまう事態

Rubocopを導入し、ターミナルで「rubocop」を実行すると下記のように
**「Use hash rockets syntax」**の指摘が大量に出てきてしまいました。

ググってもあまり記事は出てきませんでしたが、
「hash rockets syntax」は下記の記事でも書いている通り、
[Rubyのハッシュの記法まとめ](https://qiita.com/YusukeHigaki/items/18db85aa9cba3cb42569)

“`ruby
user = { :first_name => “Yusuke”, :last_name => “Higaki” }
“`
⇒こういった、**「key => value 」**の形式のハッシュのことです。

## Rubocop実行時に出てしまった指摘

“`bash
$ rubocop
Inspecting 87 files
….CCCCC.CC….CC.CC……….C.CC.CCCCCC.C…C..CC….

元記事を表示

Railsもどきを作ってみよう2(コントローラー編)

# はじめに
この記事は前回の続きです。↓↓↓
https://qiita.com/alex0033/items/73f62ac7e5700ab2b4d6

今回は、コントローラー編ということで、Railsにおけるルーティングを実装していきたいと思います。

目指すべきディレクトリ構成は下記の通りです。

“`
directory
|- app
|- controllers
|- basic_pages_controller
|- views
|- basic_pages
|- home.html.erb # ホームページ
|- next.html.erb # ネクストページ
|- config
|- routes.rb
|- srv.rb
“`
# ポイント
前回まで、次のような状態になっています。

・“`ruby srv.rb“`とターミナルで入力すると、サーバを立てることができる。
・http://localhost:

元記事を表示

Rubyで湯婆婆を実装してみる

## はじめに
最近巷ではいろいろな言語で[湯婆婆を実装する](https://qiita.com/Nemesis/items/c7192a7c510788d2cba2)のが流行っているようですが、まだRubyではなさそうなので乗っかっておきます。

## コード
“`ruby
puts “契約書だよ。そこに名前を書きな。”

name = gets.chomp

puts “フン。#{name}というのかい。贅沢な名だねぇ。”

new_name_index = rand(name.size)
new_name = name[new_name_index]

puts “今からお前の名前は#{new_name}だ。いいかい、#{new_name}だよ。分かったら返事をするんだ、#{new_name}!!”
“`

## 解説
### 契約書
まずは契約書を渡します。

“`ruby
puts “契約書だよ。そこに名前を書きな。”

name = gets.chomp
“`

`gets`で標準入力を読み取ります。これには最後の改行も含まれているため、`chomp`で改行を取り

元記事を表示

Twitter クローン1

aaa

元記事を表示

【ActiveAdmin】formで、belongs_toなmodelのstrong_parameterを指定する

記事はこちら↓
[【ActiveAdmin】formで、belongs_toなmodelのstrong_parameterを指定する](https://www.malanka.tech/entry/Specify-strong_parameter-of-belongs_to-model-in_ActiveAdmin-form)

元記事を表示

【Ruby】インスタンスとは何か

#インスタンスとは

結論:クラス(設計図)から作られたオブジェクト(完成品)のこと

もう少し具体的に掘り下げていきます。

##そもそもクラスとは??
「クラス」と調べるとよく「設計図」に例えられています。
もう少し噛み砕くと、自分が行いたい処理を保管しておく箱のような存在です。
つまり、クラスという箱に処理を保管しておけば、いつでも簡単にその処理を呼び出すことができるのです。

クラスは下記のように定義できます。

“`ruby:
class クラス名(一文字目は大文字)
end
“`

そして、一般的にクラス内では`initialize`というメソッドを定義し、初期化します。

“`ruby:
def initialize()
 初期化処理
end
“`

では、実際にコードを書いてみます。下記に例を記載します。
今回はUserというクラスを作ってみましょう。

“`ruby:
class User
def initialize(name)
@name = name
end

d

元記事を表示

Railsで開発したアプリをGithubにPushする方法

#Railsで開発したアプリをGithubにプッシュする方法

ruby 2.6.6
rails 6.0.3.4
mac os

プッシュしたいローカルディレクトリに移動

“`
$ cd sample_app
“`
プッシュの準備(?)

“`
$ git init
$ git add .
“`

Githubのプッシュ先のレポジトリを指定
<URL>= レポジトリのHTTP
![スクリーンショット 2020-11-07 午後2.50.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/763647/50de8162-b633-6b77-5e29-e4ae7ca04f8f.png)

“`
$ git remote add origin
“`

GitHubにプッシュする
“” = プッシュの内容

“`
$ git commit -m “first commit”
$ git push origin master
“`
Push完了

元記事を表示

RubyMineを導入後に設定すべきこと

最近RubyMineを導入したので自分が設定したことを列挙してこうと思います。
随時更新していく予定です。

# 日本語化プラグインを導入する
メニューバーのPreferences→Pluginsを開き、「Japanese Language Pack EAP」というプラグインを導入する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/403521/5cd3527b-37dd-2cc2-371b-65e78f52dafe.png)

(まだアーリーアクセスなので英語のとこもちょいちょいあるが、普通に使っている分には問題なく使える。)

# RubyMineの設定変更

### 開いているファイルを常にプロジェクトビューで表示する
左側のプロジェクトタブを開き、上部の三点リーダーみたいなメニューを開いて以下のチェックを入れる

![スクリーンショット 2020-11-07 14.23.37.png](https://qiita-image-store.s3.ap-northeast-1.a

元記事を表示

【Ruby/Rails】Active Storage 初期設定マニュアル

# はじめに

## やりたいこと
– 簡単に画像を登録したい

## Active Storage でできること
– モデルに簡単に画像を紐付けできる
– Amazon S3、GCPなどクラウドストレージへのアップデートも可能 => たしかAWSでデプロイするときもActive Storageまわりはいじらなくてよかったはず。。。

## やってみて
毎度お世話になってますが初期設定のやり方を毎回忘れるので備忘しておきます。

※Active Storage はGem?
>Active Storage はファイルアップロード用の**Gem**だそうです。
もともとは外部からインストールが必要なGemでしたがRailsに統合されたため、Active Storage 自体のbundle installは不要です。

## 参考URL
[Rails ガイド > Active Storage の概要](https://railsguides.jp/active_storage_overview.html)

# 手順

– 画像加工ツールの導入
– Active Storage のイン

元記事を表示

OTHERカテゴリの最新記事