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

Ruby関連のことを調べてみた2019年11月18日
目次

||= とは?

#||= とは?

代入された値が`nil`だった場合右辺の値を代入する。

“`ruby
value3 = nil #nilを代入している。

value3 ||= ‘りんご’ #||=で’りんご’を代入

symbol3 = case value3
when ‘りんご’,’なし’,’きうい’,’もも’
‘果物’
when ‘きゃべつ’, ‘きゅうり’, ‘トマト’
‘やさい’
when
‘該当なし’
end

puts symbol3
“`

戻り値
果物

元記事を表示

【Ruby】scanメソッドでフォーマットがバラバラの年月日情報を抜き出す

## はじめに
Rubyでデフォルトで用意されている`scan`メソッドを使ってみたら便利だったのでまとめました。

参考にしたのはRuby公式リファレンスです。
[instance method String#scan (Ruby 2.6.0)](https://docs.ruby-lang.org/ja/latest/method/String/i/scan.html)

## この記事が役に立つ方
– `scan`メソッドの使い方を知らない
– Ruby初心者

## この記事のメリット
– `scan`メソッドで欲しい情報だけを抜き出した**配列**を作ることが出来るようになる

## 環境
– macOS Catalina バージョン10.15.1
– シェル:zsh
– Ruby 2.6.3

## `scan`メソッドとは?
### 公式リファレンスの説明

> self に対して pattern を繰り返しマッチし、 マッチした部分文字列の配列を返します。
> pattern が正規表現で括弧を含む場合は、 括弧で括られたパターンにマッチした部分文字列の配列の配列を返し

元記事を表示

【Ruby】Qiita 週間ストック数ランキング【自動更新】

## 他のタグ
– [【Ruby】Qiita 週間ストック数ランキング【自動更新】](https://qiita.com/kou_pg_0131/items/6e5603cb6155c1d91f71)
– [【Rails】Qiita 週間ストック数ランキング【自動更新】](https://qiita.com/kou_pg_0131/items/e94bfc7467c96ff2c7f2)

## 集計期間
2019年11月12日 ~ 2019年11月18日
## 1位 [高校文化祭の食販で自動注文機を作った話](https://qiita.com/RyotaroSaito/items/7a92d8458ea27dcdecb3)
[`Ruby`](https://qiita.com/tags/Ruby) [`Swift`](https://qiita.com/tags/Swift) [`School`](https://qiita.com/tags/School)
**62**ストック **199**いいね
[プログラミング言語別の求人数を一覧で見ることができるサービス「Nojov」を作ってみました

# アプリ

[Nojov \- プログラミング言語別求人数ビューア](https://www.nojov.net/)

[![nojov-screenshot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/349145/74fb99cd-993d-9421-ec43-b0c450eb927a.png)](https://www.nojov.net)

# 作った動機

– とりあえずGo言語に触ってみたかった!
– とりあえずReactに触ってみたかった!
– 以上!

初学者の方にとって言語選択の際の一つの指針になればいいなーと思っています。

# 集計対象の求人サイト

以下の求人サイトに1日1回クロールを行なっています。
会員限定の非公開求人等は集計の対象外になっています。

– [forkwell jobs](https://jobs.forkwell.com/)
– [ITプロパートナーズ](https://itpropartners.com)
– [レバテックフリーランス](https:/

元記事を表示

Windowsで異なるバージョンのRubyを使う方法(uru)

普段は最新のRubyを使っているけど、Ruby on Railsなど環境によっては古いバージョンを使い分けたいときに。

– 環境
– windows10
– Ruby 2.5.5, 2.4.6
– uru 0.8.5
– uru公式サイト: https://bitbucket.org/jonforums/uru/wiki/Home

## uruを導入する

### uru の準備

1. 使い分けたいバージョンのRubyをインストール
– メインで使う方のバージョン(ここでは2.5)のみパスを通すと便利
– 先に2.4のパスを通していた場合は環境変数を編集
– 参考: [Qiita – Windows10で実行ファイルへのパスを通す手順](https://qiita.com/shuhey/items/7ee0d25f14a997c9e285)
1. [uru](https://bitbucket.org/jonforums/uru/wiki/Home) をダウンロードページからDL
– DLリンク: [https://bitbucket.org/jonforums/

元記事を表示

Rails開発する前にやっておくべきこと&便利なこと【備忘録】

# 背景
新しいアプリを開発する際、毎回忘れるので備忘録として

# rails new オプション
##### ※以下sample_appsというアプリを作成する場合

“`
$ rails _5.2.2_ new sample_apps
railsバージョン5.2.2で作成する
“`
“`
$ rails new sample_apps –database=使用するSQL名
SQLを指定し作成する
“`
“`
$ rails new sample_apps –skip-test
自動テスト機能を使用せず作成する
“`
“`
$ rails new sample_apps –skip-bundle
bundle install を初回実行せず作成する
“`

# Git
git initをしておきコミットしておく。

“`
$ git init
$ git add .
$ git commit -m “init Rails Project”
“`

# データベース作成
“`
rails db:create
“`

# ジェネレータの設定
ModelやC

元記事を表示

Railsヘルパーメソッド「simple_format」の使い方

## はじめに
– 今回は、simple_formatというヘルパーについて調べてみたので簡単に機能についてまとめていきたいと思います。

## simple_format とは
– simple_formatは、改行文字を含むテキストをブラウザ上で表示させる時に使われるヘルパーになります。simple_formatの機能について簡単にまとめます。

1. 文字列を`

`で囲む
2. 改行には`
`を付与
3. 連続した改行については、`

`を付与

## simple_formatの記述方法
RailsのERBファイルに埋め込む場合には以下のように記述します。

“`ruby
<%= simple_format(入力値) %>
“`

## simple_formatについて検証

まずは、simple_formatを記述しなかった場合はこのようになります。

“`ruby:simple_formatを記述した場合
# 入力値
simple_formatがある場合とない場合について検証します。\n
まずは、si

元記事を表示

【Rails】accepts_nested_attributes_forを使って子モデルも一緒に保存する

こんばんは!スージーです。
個人アプリの中で勉強になった部分があったので備忘録として。

## accepts_nested_attributes_for
>参考:Rails API
https://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.html

userが投稿する時に関連付けられたモデルも一括保存できます。

## DB設計

### Usersモデル

| Column | Type | Options |
| ——– | ———- | ——————— |
| email | varchar | null: false |
| nickname | text | null: false |
| profile | text | null: false |
| image | text

元記事を表示

Rails 5 Bootstrap でフォームを作るときのhidden_field_tagの書き方

1時間近くハマったので,メモしておきます.

#環境
Ruby version: RUBY VERSION: 2.6.3
Rails version: Rails 5.0.7.2

#書き方
“`
<%= form_for(current_user.watch_relations.build) do |f| %>

<%= hidden_field_tag :film_id, film.id %>
<%= f.label :rate, 'rate' %>
<%= f.number_field :rate, class: 'form-control' %>
<%= f.label :comment, 'comment' %>
<%= f.text_field :comment, class: 'form-co

元記事を表示

Rails5 CSVファイルを使用して都道府県名及び市区町村名をデータベースに保存

 現在、Ruby on Rails を使用し、自作アプリを制作している中で、都道府県及び市区町村のDBが必要となったため、試しに作成したDBの作成手順を下記のとおりまとめます。
 今回は[@ultrasevenstar](https://qiita.com/ultrasevenstar/items/bcf1601e2269e46e1e9b)さんの投稿を参考とさせていただきました。
 エンジニアになることを目標に開発を進めているため、説明や手順に間違いや不足している箇所が見られると思いますので、ご指摘いただけると幸いです。
 
 作成手順
  ① CSVファイルの取得
  ② モデル・テーブルの作成
  ③ データの読み込み・保存

## Ⅰ.作成するテーブルのイメージ
・(都道府県)prefecturesテーブル(created_at,updated_atカラム省略)

|id   |name |
|:——|:—–|
|1    |北海道|
|2    |青森県|
|3    |岩手県|
|4    |宮城県|
|5    |秋田県|
|以下省略| ―  |

・(市区町

元記事を表示

Rails 6,Ruby 2.6.2のローカルアプリ作成方法(mac)

“`
$ mkdir sample-app
$ cd sample-app
$ bundle init
“`

“`:Gemfile
# frozen_string_literal: true
source “https://rubygems.org”

git_source(:github) {|repo_name| “https://github.com/#{repo_name}” }

gem “rails”, “~>6”
“`

“`
bundle install –path vendor/bundle
“`

“`
bundle exec rails new . -B -d mysql –skip-turbolinks
“`
– -Bはbundle installを行わないようにする
– -dはデータベースの指定(今回はmysql)

必要なgemをgemfileに追記
“`
$ bundle install
“`

## このエラーが発生した場合
![https___qiita-image-store.s3.ap-northeast-1.amazon

元記事を表示

【88日目】AWS Cloud9でMySQLで新規Railsアプリを立ち上げる際のエラー

つい先日までパーフェクトPHPガーなどと言っていたのに突然のRailsで申し訳ありません。
実は神里さん(@yoshito410kam)という方のオンラインサロンで[「チーム開発が経験できる」プログラミング初学者向けの企画](https://note.mu/yoshitokamizato/n/ne9fb7cd06b46)がある(現在は募集中断?)とのことで、言語は違ったのですが、思い切って参加しました。

チームでgitのブランチを切ってプルリクやマージを活用する経験は一人ではなかなかできないため、自分の学習を中断してでも参加する価値があると考えたからです。

まずチーム開発を開始する前に課題があるとのことで、その課題をやる必要があるため、パーフェクトPHPは一旦中断となります。

==================================================================================
# MySQLのインストールのエラー
さて、早速環境構築でつまづきました。
Cloud9でMySQLを使ってRailsアプリを新規作成して、H

元記事を表示

課金サービス Stripe で テスト用APIを利用する ( #Ruby や curl の例 ) ( Python PHP Java Node Go .NET も対応してる )

# 開発者用ドキュメント

[Development Quickstart | Stripe](https://stripe.com/docs/development#api-keys)

# Stripeにアカウント作成する

しておく。

# テスト用キーを取得

https://dashboard.stripe.com/test/apikeys からゲット可能

![image](https://user-images.githubusercontent.com/13635059/69001411-25256580-0921-11ea-8f53-0bbc861f36ee.png)

![image](https://user-images.githubusercontent.com/13635059/69001414-2d7da080-0921-11ea-8bbd-6df529082eea.png)

# curl を叩く

– ドキュメントのまま
– curl の -u オプションは –user の意味
– -u の指定は自分のテスト用API key に置き換える

![i

元記事を表示

定義していない変数や定数を参照

# ローカル変数

NameErrorが発生。

“`ruby
a
#Traceback (most recent call last):
# 4: from /home/hikari/.rbenv/versions/2.7.0-preview2/bin/irb:23:in `


# 3: from /home/hikari/.rbenv/versions/2.7.0-preview2/bin/irb:23:in `load’
# 2: from /home/hikari/.rbenv/versions/2.7.0-preview2/lib/ruby/gems/2.7.0/gems/irb-1.1.0.pre.3/exe/irb:11:in `
# 1: from (irb):1
#NameError (undefined local variable or method `a’ for main:Object)
“`

しかし、参照する以前に条件のせいで変数に代入されなかった場合

元記事を表示

Stripe で 定期購入 = Subscription を停止・キャンセルしたい ( #ruby gem を利用する例 )

“`rb
Stripe::Subscription.retrieve(stripe_subscription_id)
deleting_stripe_subscription.delete
“`

[stripe/stripe-ruby: Ruby library for the Stripe API.](https://github.com/stripe/stripe-ruby)

[日本正式リリースしたStripeを使ってサブスクリプション型決済システムを実装する – Qiita](https://qiita.com/tady/items/7617e62b2a5402ebd0fb#%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E5%89%8A%E9%99%A4%E6%99%82%E3%81%ABstripesubscription%E3%82%82%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B)

# Original by Github issue

https://github.com/YumaInau

元記事を表示

Railsでアクション名を間違えてcontrollerを作成した時の対応

『現場で使えるRuby on rails5 速習実践ガイド』
学習中にコントローラー作成時にアクション名を間違えて作成した時の対応
自分的備忘録です。

ActionController::UnknownFormat
—————————————
Chapter3 「タスク管理アプリケーションを作ろう」
コントローラー作成後「ActionController::UnknownFormatエラーに遭遇
![スクリーンショット 2019-11-17 12.54.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/459202/6812dcb9-afa3-67c8-8eaa-47d3b5a0350a.png)

“`ruby:routes.rb
Rails.application.routes.draw do
root to: ‘tasks#index’
resources :tasks
# For details on the DSL availa

元記事を表示

#Ruby キーワード引数はハッシュのままでメソッドに与えることが出来る – example : pass method keyword args with hash variable

柔軟に受け取るようにできているっぽい

“`rb
class A
def initialize(arg1, arg2, a:, b:, c:)
@arg1 = arg1
@arg2 = arg2
@keyword_arg_a = a
@keyword_arg_b = b
@keyword_arg_c = c
end

def echo
p @arg1
p @arg2
p @keyword_arg_a
p @keyword_arg_b
p @keyword_arg_c
end
end

A.new(:some, :how, a: 1, b: 2, c: 3).echo

options = { a: 1, b: 2, c: 3 }

A.new(:some, :how, **options).echo

A.new(:some, :how, options).echo

# :some
# :how
# 1
# 2
# 3

“`

# Original by Github issue

元記事を表示

Rubyで文字列配列を数値(整数)配列に変換する方法

# for文を使う方法

“`rb
strings = [“1”, “2”, “3”, “4”, “5”]

integers = []
for n in strings
integers.push(n.to_i)
end
# integers => [1, 2, 3, 4, 5]
“`

# mapメソッドを使う方法

“`rb
strings = [“1”, “2”, “3”, “4”, “5”]

integers = strings.map{|n| n.to_i}
# integers => [1, 2, 3, 4, 5]
“`
または、

“`rb
strings = [“1”, “2”, “3”, “4”, “5”]

integers = strings.map(&:to_i)
# integers => [1, 2, 3, 4, 5]
“`
でもOKです。配列の各値が`&`となり、`:メソッド名`が適用されます。

なお、`map`を`map!`(破壊的メソッド)にすると、レシーバー(strings)自体が整数の配列に上書きされます。

“`rb
s

元記事を表示

Rails6から採用されたZeitwerkが最高だった

# はじめに
Rails6がリリースされて早3ヶ月、

先週、大きめの案件が終わって暇になったので、社内のプロジェクトを全てRails5からRails6にアップデートしました。アップデート作業に伴い Zeitwerk について調べたところ、最高のGemだったのでまとめます。

# Zeitwerkとは
Zeitwerk (読み方: ツァイトヴェルク) とは新しく開発されたオートロードの仕組みです。Gemとして独立しており、Railsに限らず様々なRubyプロジェクトで利用可能です。

### なぜ開発されたのか?
Rails で 古くから採用されてきた `const_missing` を利用したオートロードの仕組みには、処理順序によって発生する不具合など、エッジケースな落とし穴がいくつかありました。

Zeitwerkはそういったレガシーなオートロードの仕組みを改善する目的で開発が始まり、エッジケースの解消はもちろん、パフォーマンスに優れ、スレッドセーフで、汎用的に利用可能なオートローダーとしてリリースされました。

### 由緒正しき Kernel.#autoload
Zeitwe

元記事を表示

引数と戻り値の関係は、◯◯と◯◯だ。

#引数と戻り値ってなんだよ

数学とか高校で嫌いになった文系勢には、数って聞くだけで抵抗感あるわ…

関数に入れる値を引数、返ってくる値を戻り値っていうらしい。

#身近にある引数と戻り値は「消費税」

消費者としては、全然嬉しくない「消費税」だが教材としては身近にある優秀な例である。
2019年10月まで消費税は一律8%でした。
皆さんも普段から接してますよね。俺は払わないなんてできないんで、多分わかりやすい実例です。
100円の物を買うと108円になりますよね。これを敢えて式に起こすとこうなります。

“`
100×1.08(+8%)=108円
“`

これを関数化するならば、

“`
X×1.08=1.08X
“`
という式になりますよね。

この時、関数に入れるXは引数、1.08Xというのは戻り値になるわけです。

“`
引数 × 1.08 = 戻り値
“`

ってなわけですな。
これはとてもわかりやすい。

#もっとわかりやすくしてくれ

飯食ったら、うんこになるだろう?
それくらいはわかるだろう。

関数っていうのはルールなんだ。
人間の体もルールに基づいて

元記事を表示

OTHERカテゴリの最新記事