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

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

[ruby]ドリルアウトプット

## 内容
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675525/e4450cd3-d907-ca49-36cd-e9e2f844921c.png)
## 実装
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675525/153a9e14-8041-5959-a5cb-b1e4eb3b2e09.png)
## 解説
今回作成したのは、1〜10までの数字を順番に足し合わせていくプログラムです。
私が最初に試したコードが下記です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675525/52e85bdc-fda4-9e1c-b232-79145c07f21e.png)
出力されたものが下記です。
![image.png](https://qiita-image-store.s3.ap-

元記事を表示

bundle install でmysql2がインストールされない

###はじめに
僕のローカル環境で毎回エラーになるので解決策をメモします
*まだ厳密な原因はわかってませんが、とりあえずこれで通りました程度の内容です

“`
$ bundle install –path vendor/bundle

エラー文↓
An error occurred while installing mysql2 (0.5.3), and Bundler cannot continue.
“`

###解決方法

“`
$ bundle config –local build.mysql2 “–with-ldflags=-L/usr/local/opt/openssl/lib”
$ bundle install –path vendor/bundle
“`

上記コマンドを実行すると、`.bundle/config`に下記一行が追加されます

“`
BUNDLE_BUILD__MYSQL2: “–with-ldflags=-L/usr/local/opt/openssl/lib”
“`
とおるようになる。

元記事を表示

Rails Tutorialを咀嚼する【第1章ゼロからデプロイまで】

# 1.1 はじめに
■REST
SQLでよく使う「Create/Read/Update/Delete」をそれぞれ「GET/POST/PUT/DELETE」に当てはめたもの。セッションなどの状態管理を行わないため、命令をいちいち書いていく必要がある。
基本的には「route.rb」に記載する。

■コマンドライン
ターミナル。クラウドIDEに標準的に備わっている。

#1.2 さっそく動かす
■Cloud9
AWSが提供しているクラウド上で開発可能な統合開発環境。面倒な環境設定もいらないため超便利

■gem
パッチファイル?追加要素?みたいなもの。「Gemfile」というファイルに記載して、bundle installとターミナルに打ち込むと自動でインストールしてくれる。

#1.3 最初のアプリケーション
■rails new
Railsを使ってアプリケーションを作る際に初めに書く呪文。必要なファイルを自動で生成してくれる。

■フレームワーク
Railsがフレームワーク。エディタがあれば自由にプログラミングできるが、将来的にめちゃくちゃな書き方になってしまうため、「ある程度書き方

元記事を表示

selfとは

#selfとは
オブジェクトそのもの。メソッドの中では、そのメソッドが属しているインスタンスをselfという名前の擬似変数で参照できる。他の言語でいうthis。
#selfの特徴
メソッドの中で、レシーバを省略したメソッド呼び出しが行われた時は、selfがレシーバとなる。
レシーバは省略できる場合には省略することが多い。
#使い方
“`
class Numbers
attr_accessor :number
def set_number
self.number = 30 #このクラスのnumberを呼んだ時に30を入れておく
end
end

num1 = Numbers.new
num1.set_number
num1.number # => 30
“`

元記事を表示

最初の n 個の素数の総積プラス 1 が素数かどうか

# 1

素数が無限に存在することは古代ギリシャで既に知られていた。
紀元前に編纂された『原論ストイケイア』には以下のような感じの証明が書かれているとか。

素数が 3 個しか無いとしよう。これを $p$, $q$, $r$ とする。
$pqr+1$ は $p$, $q$, $r$ のどれで割っても $1$ が余る。
これは素数が $p$, $q$, $r$ だけという仮定に反する。
(この論法は素数が 4 個でも 5 個でも同様。つまり,素数が有限個と仮定すれば必ず矛盾が導かれる)

背理法(仮定 A から矛盾を導いて A の否定を証明する論法)を使っている。
中学でこの証明に出会ったときちょっとした感動を覚えた。
背理法がカッコよかったし,「全素数の総積プラス 1」という単純な式から実に簡単に矛盾を引き出したところが見事だと思った。

# 2

同じ頃「大きな素数探し」というテーマがあることを知った。
電子計算機の進歩とともに,手計算では到底見出せないような巨大な素数が次々見つかり,何年にどこの誰がどんな素数を見つけた,というような一覧表が作られ

元記事を表示

@(インスタンス変数)とは

#@変数とは
アットマークで始まる変数は「インスタンス変数」と呼ばれ、自クラスやサブクラスから参照できる。
#インスタンスとは
インスタンスは何らかの具体的なモノ、動いている、動かせる、出現する、消滅するモノである。クラスを雛形として作られる。
「たこ焼き機がクラスでたこ焼きがインスタンス」

元記事を表示

rails tutorial 第1章

#はじめに

独学でrails tutorialを進めていく過程を投稿していきます。

進めていく上でわからなかった単語、詰まったエラーなどに触れています。

個人の学習のアウトプットなので間違いなどあればご指摘ください。

初めての投稿なので読みにくいところも多々あるかと思いますがご容赦ください。

#第一章 ゼロからデプロイまで

1.2.2 Railsをインストールする

Q..
yarmなるもののインストール指示されたがいったい何だろう
A..
JavaScriptソフトウェアの依存関係を管理するプログラムらしい(javascriptのパッケージマネージャ―)


1.3.1 Bundler

エラー発生!!

bundle install時に早速エラーに遭遇した

遭遇したエラー

“`

[!] There was an error parsing `Gemfile`: Illformed requirement [“-> 3.2.1”]. Bundler cannot continue.

# from C:/environment/hello_app/Ge

元記事を表示

[ruby]ドリルアウトプット

## 内容
if → unlessへの書き換え
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675525/e88762e9-f6b1-366a-256a-95d0f0b3805b.png)

## 実装
ヒントを見ていただけたらわかると思いますが、if文は真のときに処理が実行されるのに対し、unlessは条件式が偽のときに処理が実行されます。
なので、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/675525/771ed0ef-d879-4ed5-6d66-d3404b4d14ad.png)
とすることにより同じように書くことができます。

今の所どんなときに使うのかわかりませんが、覚えておきます!

元記事を表示

Twitterマーケティング?自動化しちゃば?

この頃、サービスをリリースした阿部です。
過剰なタイトルをつけたものの、マーケティングがわからなく四苦八苦です。
とりあえず、RubyでTwitter運用を始めたので、そのナレッジを記載します。
(始めたばかりで成果のほどは不明。)

Twitter運用めんどくさい。。
僕、Rubyエンジニアでツイッタラーじゃないんだけど(怒)
簡単に運用する方法ないの?
って人向けの記事です。

サンプルはRubyで記載しています。

## アジェンダ
– どうやって自動化した?
– Twitter Rest APIとは?
– RubyのTwitter REST APIの導入方法
– 実際にどんな運用をしているか
– まとめ

## どうやって自動化した?
僕は、[Twitter Rest API](http://westplain.sakura.ne.jp/sub/translate/twitter/Documentation/REST-APIs/Public-API/REST-APIs.cgi)を使って自動化しました。

## Twitter Rest APIとは?
名前の通り、Twitterが

元記事を表示

Rails ポートフォリオ実装 – 設計 –

ポートフォリオ実装にあたり各工程ごとに、学習のアウトプットとして手順や詳細について記し共有させていただきますので、一つの例として参考にしていただければ幸いです。
今回は、前回工程である要件定義の次で設計についてとなります。

<アウトプットする理由について>
・”わかった気になっている”を無くすため
・フィードバックを受ける機会を得るため
・得た情報を自分の中にしっかり定着させるため
・数多くの情報から本当に必要な情報を判断できるようになるため

<各工程>
1. [要件定義(仕様決め、ガントチャート作成)](https://qiita.com/ryoh-i/items/4d86753a9d788e8acb6c)
2. 設計(画面設計、DB設計、URL設計、タスクばらし)
3. 実装(たくさん…)

<Webアプリケーション開発時の設計ですべきこと>
1. 画面設計
2. DB設計
3. URL設計
4. タスクばらし

***調べる限り、上記4つが設計ですべきこととして挙げられましたが、私は今回「画面設計」と「DB設計」のみの実施といたしました。URL設計は、画面設計のプロトタイ

元記事を表示

Rubyで3桁区切り表示を実現する

#3桁区切の表示にしたい場合
1. to_s(:delimited)メソッドを使用する
2. 上記メソッドを使用するために、ファイル先頭にrequireを追加する
active_supportはRuby on Railsのコンポーネントで色んなメソッドを使えるようにするもの

““ruby:num.rb
require “active_support/core_ext/numeric/conversions”

10000.to_s(:delimited)
# => “10,000”
““

詳細はRailsガイドのActive Supportページに記載有(6.3 書式設定)
https://railsguides.jp/active_support_core_extensions.html#%E6%9B%B8%E5%BC%8F%E8%A8%AD%E5%AE%9A

#あとがき
私は3桁表示方法を探していた時
「.to_s(:delimited)メソッドで数値を3桁区切にできるらしい!」と喜んで使用したところ
requireが必要だとは知らず、以下エラーに遭遇。

`

元記事を表示

Windows 10のVSCodeでrubyのdebug環境を構築する

# はじめに
一年以上ぶりに、rubyの環境を作ろうとしたら、なかなかうまくいかず、やっと環境ができたので、メモを残します。これで、rubyでstep実行や変数の確認ができるようになります。

# Visual Studio Code のインストール
– [マイクロソフト](https://azure.microsoft.com/ja-jp/products/visual-studio-code/)のページからダウロードしてインストールします。

# Ruby のインストール
– [Ruby Installer](https://rubyinstaller.org/downloads/)のサイトのdevkit付のインストーラーを使ってインストールします。今回使ったのは[rubyinstaller-devkit-2.6.6-1-x64.exe](https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.6.6-1/rubyinstaller-devkit-2.6.6-1-x64.exe)です。

元記事を表示

【Rails】Vagrant環境でPostgreSQLを使用する方法

# 開発環境
・Ruby: 2.5.7
・Rails: 5.2.4
・Vagrant: 2.2.7
・VirtualBox: 6.1
・PostgreSQL: 9.2.24
・OS: macOS Catalina

# 実装

## 1.`vagrant ssh`へログイン

“`terminal:ターミナル
$ vagrant ssh
“`

## 2.`yum`を最新版にアップデート

“`terminal:ターミナル
$ sudo yum -y update
“`

## 3.`PostgreSQL`をインストール

“`terminal:ターミナル
$ sudo yum -y install postgresql
“`

“`terminal:ターミナル
$ sudo yum -y install postgresql-devel
“`

“`terminal:ターミナル
$ sudo yum -y install postgresql-server
“`

`psql –version`を実行して、バージョンが表示されればインストール完了です。

“`

元記事を表示

最近のrbenvの問題点

最近のrbenvの問題点

$ rbenv -v
rbenv 1.1.2-34-g0843745
8月2日〜10日間に更新がなければ、全てこのバージョンと思われる

古いMacOSXでいろいろと試行錯誤中におきたこと。
1.openssl や curl の問題かは不明だが、rbenvが行うruby 2.5.8のダウンロードに失敗する。
2.ダウンロード失敗にエラー表示が不足している。この為、1の時に原因がopensslかcurlかcert.pemがユーザーには全く不明。

ダウンロード出来れば何でもいいという話になる。しかし

3.iterm2上からコマンドで、curl -KO または-LOで
https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.8.tar.gz
のダウンロードには成功する。訳が分からないよ。

以下はMacOSX El Capitan 10.11でおきたこと。
4.openssl 1.1.1gがインストール済みでパスが通っていても.rbenv下に別途インストールする。
5.rbenv install 2.5.8でダウンロ

元記事を表示

【Ruby】条件分岐内で標準出力を使う方法

アルゴリズム問題を解くときのようにgetsを使って標準入力を入れようとしたところ以下のようなエラーになった

“`
$ ruby enc_main.rb new
Traceback (most recent call last):
2: from enc_main.rb:12:in `


1: from enc_main.rb:12:in `gets’
enc_main.rb:12:in `gets’: No such file or directory @ rb_sysopen – new (Errno::ENOENT)
“`

対処方法

以下のコードに$stdinを使ったgetsメソッドを使うと解消した。

“`
if ARGV[0] == “new”
puts “What’s Name?”
name = $stdin.gets

“`

参考にしたドキュメント

[$stdin (Ruby 2.7.0 リファレンスマニュアル)](https://docs.ruby-lang.org/ja/latest/method

元記事を表示

Railsでワクワク個人開発  第一回:仕様書とDB設計をしてみる

# 個人開発をやっていくぞ
 以前の記事でRubyをつかってひととおりのロジックを組むことはできるようになった。そういうわけで、こんどはRailsでなにかをつくってみることにした。何かしらのウェブサービスをつくろう。

# ざっくりとした仕様書を書く

 なにはともあれ、仕様書チックなものが必要だった。自分のやりたいことを明確にしておきたい。わたしが作りたいのは **「わいわい観察日記」** である。観葉植物の成長記録をみんなでシェアできるようにしたい。そのうち、IoTプロダクトとデータを連携していろいろやりとりできるようにしたい。

https://github.com/kyokucho1989/waiwai-kantatsu-nikki

“`
# ワイワイ観察日記

## これはなにか
 植物を観察する日記をシェアするウェブサービス
 (室内の植物限定)

## ベネフィットはなにか
 栽培記録をシェアすることで、栽培するモチベーションを保つことができる

## ユーザーの想定
– さいきん植物を家で育て始めた人
– 観葉植物がすきなひと

## マネタイズ
– 広告配置(植物

元記事を表示

[Ruby]Macでpumaがインストールできない[Railsとか]

pumaが原因でRailsがインストールできないんだなこれが。
sqliteがなくてインストールできないのはbrewからsqliteを入れれば解決するんだけど

macOS Catalina 10.15.6
ruby 2.6.5
gem 3.0.3
puma 4.3.5

似たような質問にxCodeがインストールされていないのでは?なんて回答もあったけど
手元ではそれで解決せず。

エラーメッセージ(クリックで展開)

“`
gem install puma -v ‘4.3.5’ –source ‘https://rubygems.org/’
Building native extensions. This could take a while…
ERROR: Error installing puma:
ERROR: Failed to build gem native extension.

current directory: /Users/rin.nakashima/.anyenv/envs

元記事を表示

【Rails】ArgumentError: Malformed version number string 0.32+gitでwebpacker:installが実行できない場合の対処方法

## はじめに
`webpacker:install`を実行すると表題のエラーメッセージが表示されてしまい、Railsが実行できない状況が起きました。
今回はこの現象の回避方法についてまとめます。

## この記事の対象者
– 表題のエラーメッセージが表示され、`webpacker:install`を実行できない人

## 実際にどのようなエラーになるのか
### エラーに遭遇した環境
Docker公式の`Ruby:2.7.1`を利用したコンテナで遭遇しました。
他の環境では試していないため、同じ方法で対処できると断定はできませんが、参考になればと思います。
使用したDockerfileとRailsのバージョンは以下の通りです。

“`dockerfile:Dockerfile
FROM ruby:2.7.1
LABEL maintainer=”TomoProg”
RUN apt-get update -qq && apt-get install -y \
build-essential \
libpq-dev \
nodejs \
default-m

元記事を表示

parallelの並列数の決め方

[parallel](https://github.com/grosser/parallel) の並列数の決め方を調べたのでメモしておきます。下記の1から順に評価されて並列数が決定されます。

## 1.システムのプロセッサコア数

`Etc.nprocessors` の返すプロセッサコア数です。1CPU のシステムでは parallel を使っても後述の指定のいずれも行わなかった場合は並列数1になってしまいます。逆にサーバ機で多コアの Xoen などを使っている場合には並列数が多くなりすぎて CPU やメモリを圧迫してしまうこともあり得ます。

## 2. 環境変数 `PARALLEL_PROCESSOR_COUNT`

環境変数 `PARALLEL_PROCESSOR_COUNT` が設定されていると、その値が採用されます。parallel を呼び出す都度に指定する必要がないので、常に同じ並列数でよい場合には便利でしょうか。

## 3. in_processes/in_threads で指定する並列数

map メソッドの in_processes/in_threads オプショ

元記事を表示

[Rails]deviseを使ったウィザード形式での新規登録機能の実装

# はじめに
フリマのコピーサイトを作る際に、構造をやや難しくしてしまったために苦労したので記録として残そうと思いました。もっと綺麗にかけるなどご指摘あればお願いします。
# 実装方法

### 開発環境
– Ruby 2.5.1
– Rails 5.0.7.2
– devise

###前提
– deviseは導入済み
– deviseのデフォルト状態でのログイン機能は実装済み
– 1ページ目 → 2ページ目 → トップページ(ログイン)と遷移する
– テーブルは、`users` `profiles` `sending_destinations`の3つ
– 1ページ目は1つのフォームで`Userモデル`と`Profileモデル`の二つを扱っている
※2つのモデルに同時に値を送る方法はこちらの記事を参考にしています。
[【Rails】deviseのフォームで2つのモデルに同時に値を送る方法(例: UserモデルとProfileモデル)](https://qiita.com/wonder_meet/items/9238d9bedea542ab975b)

### DB設計

元記事を表示

OTHERカテゴリの最新記事