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

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

フロントエンドの人が未経験からバックエンド開発をするために実践した学習方法と複数言語習得のススメ【Ruby on Rails】

## TL;DR

– [自作メモを作り、知識をアウトソーシングしよう!](https://qiita.com/sunnymerryAce/items/70f2807a7fa00e56b44a#%E8%87%AA%E4%BD%9C%E3%83%A1%E3%83%A2%E3%82%92%E4%BD%9C%E3%82%8A%E7%9F%A5%E8%AD%98%E3%82%92%E3%82%A2%E3%82%A6%E3%83%88%E3%82%BD%E3%83%BC%E3%82%B7%E3%83%B3%E3%82%B0%E3%81%97%E3%82%88%E3%81%86)
– [複数言語を習得しよう!](https://qiita.com/sunnymerryAce/items/70f2807a7fa00e56b44a#%E8%A4%87%E6%95%B0%E8%A8%80%E8%AA%9E%E3%82%92%E7%BF%92%E5%BE%97%E3%81%97%E3%82%88%E3%81%86)

## はじめに

Livesense Advent Calendar 19日目を担当

元記事を表示

プログラミングとは?

###そもそもプログラミングとは何か?
コンピューターが実行する処理の手順をまとめたデータをプログラムと呼ぶ

プログラミング言語とは?
普段私たちが話している言葉はコンピューターは理解できない。
コンピューターがわかる言葉をプログラミング言語という。
プログラミング言語で書かれたテキストやファイルをソースコードと呼ぶ

##プログラミング言語の種類
Ruby
java
php
Python

などがある。

プログラムを実行するにはターミナルにコマンドを打ち込んで実行する。

##ここからプログラミング言語Rubyについて記述していきます。

##irb
irbコマンドはターミナルから直接Rubyのプログラムを動かすことのできる機能(Interactive Ruby の略)
エディタでコードを記述してターミナルを実行するのではなく直接ターミナルで実行できる。

####ターミナル画面
“`
#irbを起動
% irb
“`

“`
irb(main):001:0> “Welcome! Ruby” #このように打ち込む
=>”Welcome! Ruby” #このように出力
“`

元記事を表示

railsでメール送信機能実装

# はじめに

[現場で使える Ruby on Rails 5速習実践ガイド](https://www.amazon.co.jp/%E7%8F%BE%E5%A0%B4%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8B-Ruby-Rails-5%E9%80%9F%E7%BF%92%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89-%E5%A4%A7%E5%A0%B4-ebook/dp/B07JHQ9B5T)でインプットを行っており、アウトプットで投稿しています。
サンプルは、タスク管理アプリです。今回の投稿では、ユーザーがタスクを登録したときに、「○○タスクが登録されました」というメールを送る機能を実装します。

# 目次

1. [メイラーの作成](#Chapter1)
1. [メソッドを追加](#Chapter2)
1. [テンプレート作成](#Chapter3)
1. [送信処理実装](#Chapter4)
1. [動作確認](#Chapter

元記事を表示

【Rails】deviseを使ったサインアップ機能 wrong number of arguments (given 0, expected 1)というエラー

# エラー詳細
deviseを導入して、サインアップを実行したところ、このような内容のエラーが吐かれた。

“`log
ArgumentError (wrong number of arguments (given 0, expected 1)):
wrong number of arguments (given 0, expected 1)
“`

#解決法

“`user.rb
has_secure_password
“`
を消す。
has_secure_passwordとは、パスワードをDBに保存する時に、暗号化して保存してくれるrailsの機能のこと。deviseを使う場合は不要なので、コメントアウトしておきましょう。

# 参考にした記事
https://qiita.com/kents1002/items/4079e3d05d322febe00e
https://qiita.com/shumpeism/items/4d8946ade2dbdccab31c

元記事を表示

WSL2+Ubuntu20.04へのRubyインストール

個人的なメモ

## 必要なライブラリのインストール
“`bash
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install -y autoconf bison build-essential libssl-dev libyaml-dev libreadline-dev zlib1g zlib1g-dev sqlite3 libsqlite3-dev nodejs npm imagemagick git
sudo npm install -g yarn
“`

## Rubyをインストール
“`bash
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
echo ‘[ -f “$HOME/.profile” ] && source “$HOME/.profile”‘ >> ~/.bash_profile
echo ‘[ -f “$HOME/.bashrc” ] && source “$HOME/.bashrc”‘ >> ~/.bash_pr

元記事を表示

Rails on Tiles(どう書く)

http://nabetani.sakura.ne.jp/hena/ord5railsontiles/

与えられたタイルのレールに沿って移動するとき、範囲外にはみ出てしまうまでのルートを求める問題です。

“`ruby:Ruby
module RailsOnTiles
Tiles = [[2, 3, 0, 1], [1, 0, 3, 2], [3, 2, 1, 0]]
Dirs = [[0, -1], [1, 0], [0, 1], [-1, 0]]
module_function

def go(input)
field = input.chars.map(&:to_i).each_slice(3).to_a
solve(field).map { |i| (“A”..”I”).to_a[i] }.join
end

def solve(field, x=1, y=-1, dir=2, route=[])
dx, dy = Dirs[dir]
x += dx
y += dy
return route i

元記事を表示

【初心者向け】Ruby on Rails チュートリアル第4版(Rails5.1)の環境構築を1時間以内で!

# 内容

言わずと知れたRuby on Railsチュートリアル、素晴らしい教材ですよね。全くの門外漢だった自分を駆け出しエンジニアのレベルまで引き上げてくれた神チュートリアルだと思っており、エンジニアとして就職した今も頻繁に見返す最高の教科書です。

Railsチュートリアルをはじめるにあたって最初に大きな壁として立ちはだかるのが環境構築です。私自身も約3ヶ月前に異業種からの転職でRubyエンジニアとして働きはじめたばかりなので、環境構築などの「プログラミング学習を始める以前の準備」に時間を取られた時のことは記憶に新しいです。

本記事では、一人でも多くのプログラミング初学者の方にRailsチュートリアルの魅力を感じて欲しいという思いから、無料で公開されているRailsチュートリアル第4版のための、すなわち「Ruby on Rails 5.1.6 開発環境を1時間以内に手に入れる」ための手順を紹介します。

※ Railsチュートリアルが推奨しているAWS Could9によるものではなく Virtual Box + Vagrant による環境構築となります

元記事を表示

Rails再び。Homebrewで早速詰まる。

#唐突に思い出す
役1年半前、ひたすらRailsを勉強していたことを思い出した。そしておもむろに書籍を買ってみた。ちなみに前回勉強していたときは、Railsチュートリアルでherokuでデプロイでつまずき脱落。

##Homebrewインストールで早速詰まる
“`terminal:
/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”
“`
Homebrewのサイトからコピペでインストール

しかしこんな感じのエラー↓

“`
Error:
homebrew-core is a shallow clone.
To brew update, first run:
git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch –unshallow
This restriction has been made on GitHub’s request because upda

元記事を表示

「時間が経って、別の人が見ても使いやすいコードを書こう」( n回目 )

こんにちは、株式会社ベストティーチャーで元気に働く たわら です。

## とある日

先輩 「 キャンペーンのダミーデータを作ってくれる? rakeタスクで 」
ボク 「 ハイ! 」

ボク 「 ゴニョゴニョ、、、よし」

“`ruby
task campaign: :environment do
Campaign.create(
title: “ダミーキャンペーン”,
message: “条件 2021年1月1日(金)〜1月31日(日)までにキャンペーンに参加”,
duration: Time.zone.parse(‘2021-01-01 00:00:00’)..Time.zone.parse(‘2021-01-31 23:59:59’))
end
“`

ボク「 できました! 」

先輩 「 …… 」
先輩 「 …… 」
先輩 「 これ一回きりしか使えないね、、、汎用性があるかたちに改善しよう! 」
先輩 「 時間が経って、別の人が見ても使いやすいコードを書こう 」
先輩 「 たとえば、先に変数で定義すると

元記事を表示

[Rails]deviseを導入した(つもり)後、コマンドが効かなくなった

Ruby on Railsでアプリケーションを作成中、deviseを導入しました。インストール後に`rails db:create`でデータベースの作成を行おうとしたところ、

“`
undefined method `devise’ for Install (call ‘Install.connection’ to establish a connection):Class (NoMethodError)
“`

というエラーが出ました。
`rails s`のコマンドも効きません。

# 原因

`history`コマンドで直近の入力履歴を探ってみると、

“`
bundle install
rails g devise install
rails db:create
rails s
“`

`rails g devise:install` と入力すべきところが `rails g devise install`と入力されていました。
`:`の書き忘れです。
deviseがそもそもインストールされていなかったようです。

#対策
install.rb というモデルが作成さ

元記事を表示

RubyでValueObjectを作るベストなやり方を考えてみた

## 結論
以下のようにするのがベストではないかと思ってますが、もっと良いやり方あったらコメントください。

“`ruby
module ValueObjectable
def initialize(args)
super(args)
freeze
end
end

class Location < Struct.new(:country, :city, keyword_init: true) include ValueObjectable end ## 特徴 ## # 1. OpenStructのように Hash で初期化できる tokyo = Location.new(country: 'Japan', city: 'Tokyo') => #

# 2. 比較演算ロジックを自前で定義しないでいい
fukuoka = Location.new(country: ‘Japan’, city: ‘Fukuoka’)
tokyo == fukuoka
=> fals

元記事を表示

<投稿一発目> Rubyの勉強はじめました

##前置き
初めてQiitaで記事を書いてみます。
自分の性格的に、出来ればQiitaの機能等について詳しく知り尽くした上で投稿を始めたいのですが、そんな調子だと石橋を100回叩いても一歩を踏み出せない気がするので、Rubyの勉強を開始したこのタイミングでとりあえずはじめてみます。
ひとまず学習内容の記録を備忘録的に残していく形で書いてみました。これからどのように記事を書いていったらいいかもまだ曖昧ですが、書き方・内容についても少しずつブラッシュアップしていければと思います。
自己紹介等はおいおい機会があるごとに少しずつ書いていけたらと思います。

##学習教材について
「Progate」の「Ruby学習コース」を活用して勉強をはじめます。
今回は「Ruby学習コースⅠ」を終わらせました。

##ちょっとした雑記・学習後の所感
プログラミングって学び始めて直ぐの段階から、「面倒なこと・重複作業をしないため、要らないミスをなるべく減らすために、ここはこういうふうにしましょう」ってことを考えさせ・勉強しますよね。
「だってそれがプログラミングの要でしょ?」って言われてしまうかもしれませんが

元記事を表示

Rake

\![Mac OS X-10.15.7]() \![ruby-2.7.1p83]()

# Rake

rakeはmakeやantのruby版
rakeコマンドの内容はRakefileにtaskを作成する
Rakefileに

“`lisp
task :default do
system ‘rake -T’
exit
end

desc ‘hello NAME’
task :hello do
name = ARGV[1]
puts “Hello #{name}!”
exit
end
“`

実行結果

“`lisp
$ rake hello Cyoukou
hello Cyoukou
“`

となるこれはつまりRakefileの中の「hello」というtaskを実行したことになる

# System Call

system ca

元記事を表示

docker-compose環境でRuby on Jetsの構築からデプロイまで<後編>

## 概要

以前の記事でRuby on Jetsのローカル環境を作成するところまで書きました。

[docker-compose環境でRuby on Jetsの構築からデプロイまで<前編>](https://qiita.com/takashi-5/items/74b8ac4a342ae7372205)

今回は実際にデプロイするところまでまとめてみたいと思います。

## ユーザを準備

コンソールからIAMユーザを作成し、credentialを取得してください。

[https://console.aws.amazon.com/iam/home#/users](https://console.aws.amazon.com/iam/home#/users)

今回デプロイするためだけのユーザということで「プログラムによるアクセス」にチェックを入れます。

![Untitled.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/923148/7649b37b-4e94-b873-4b58-657238748

元記事を表示

【Ruby】バイナリーサーチを使用して配列内の要素の検索

## 概要

少々複雑に感じることも言語化することで理解をを深くできると思いまとめました。もっと良い表現や間違えなどご指摘いただけたら幸いです。

## 目次

– バイナリーサーチとは
– 検索プロセス

– 実践
– 問題
– 解答

– まとめ

– 参考文献

## バイナリーサーチとは
ソート済みのリストや配列に入ったデータを検索するときに使用する手法です。対象のデータを半分に絞り込むことで検索していきます。

#### 検索プロセス

– **二分割したときの値**と**検索したいデータが一致**するまで繰り返し検索するように **while** を使用

– 検索したいデータが半分より**右にあるか? 左にあるか?**
– もしくは**配列内に存在しないのか?**

## 実践

#### 問題

>配列に任意の値が存在するかどうか、そして何番目に存在するのか、検索してください。

#### 解答

“`ruby
def binary_search(ary, target)

left = 0

元記事を表示

【Ruby】if文 条件式の考え方

論理的思考強化の為、ドリルの復習をしています。
初学者のため、何かお気づきの点がありましたらご教示いただけますと幸いです。

##問題
入力した整数が10の倍数からの差が2以内であるときはTrue、
それ以外はFalseと出力するメソッドを作りましょう。

##模範解答
“`ruby
def near_ten(num)
first_place = num % 10
if first_place <= 2 || first_place >= 8
puts “True”
else
puts “False”
end
end
“`

##解説
一の位の値に着目します。
「10の倍数からの差が2以内」とは、一の位が「0,1,2,8,9」のどれかである、ということです。
そのため、四則演算の剰余算“%“を使い一の位を出し、それを“first_place“に代入、
そして“first_place <= 2 || first_place >= 8“で“「0,1,2,8,9」“に当てはまるか確認しています。

他にこんなやり方が

元記事を表示

git push herokuし、herokuのURLを開くとMethod Not Allowedが出る問題

## 問題
git push herokuすると以下のような表示が出ますよね
ここの下から2行目を開くと**Method Not Allowed**がでます。

![スクリーンショット 2021-01-06 20.13.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/699910/35d1265f-cdf5-edeb-14e4-4cc732d0e152.png)

## 解決法
上の写真の下から2行目はgit用のファイルなので、remote:の後のURLを開きましょう。

リンクを確認せずに開くとこういうことになってしまいます。
気をつけましょう(戒め)

## ちなみに

このgitのリンクはデプロイ用のgit repositoryらしいです。
なんらかの問題があった場合の最終手段としてcloneしたりするのはいいらしいですが
正規の”オリジン”リポジトリとしては使用してはいけないそうです。
詳しくは以下のリンクを参照してください。

## 参照

[herokuにgit pushしたURLを開く

元記事を表示

ニコニコ動画apiを使って埋もれてる面白い動画を発掘する

#はじめに
– ニコニコが好きなので作ってみました。

#背景
– ニコニコ動画のとりあえずマイリストの廃止で動画のマイリスト数が激減した
– マイリストは面白い動画を見分ける判断材料になっていたのでとても残念
– とりマイの代わりにできた「いいね」の数はなぜか非公開(意味がわからない)
– 良質な動画を発見する機会と材料がなくなった

#概要
– ニコニコのスナップショットAPIを使って、動画のタグ検索を行い動画リストを作成する
– 埋もれている動画の基準として、”(コメント数+マイリスト数×100)/再生数”が60%以上で、かつ再生数が500以上の動画
– csvファイルにて出力

#開発環境
– 言語
– ruby

#検索例(一部)
“実況プレイ動画”タグで検索。
対象の投稿日時は、2020年1月から12月末まで。
全部で1053件の動画が抽出されました。
![niconico.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784464/54196c32-c13b-9444-56fc-2

元記事を表示

【circleCI】Rails6/mysql8のProjectを自動テスト&自動コードチェック

## はじめに
久しぶりにyml職人していたら、circleCIの書き方を忘れてしまったので、備忘録として残します
折角なので冗長なymlをCircleCI Orbsでスッキリさせてみました
CircleCIで設定する環境と、実際にアプリを運用する環境をできるだけ合わせることがポイント
GithubでPull Requetを作成したら、masterにマージする前に自動でビルドされてテストやリンターが走ったら便利。

## 前提
– Githubのアカウントをもっていること、既にRailsのプロジェクトがあること
– Rspec & Rubocopが設定済みであること
– Mysqlをつかった例を説明します

## 開発環境
– Rails6
– Mysql8
– Docker
– AWS ecs

## config.ymlの設定

?全体はこんな感じ
・commitした時とmergeした時にRspec&RUbocopが走る
・mergeしたらecsに自動デプロイ

“`yml:.circleci/config.yml
version: 2.1

orbs:
ruby: cir

元記事を表示

README.org

\![Ubuntu-20.04.1]() \![ruby-2.6.6p146]()

# リンク集

– [README.org](https://qiita.com/gagagagazelle/items/4e95abd578bb0127413a)
– [ruby 演習メモ I (puts)](https://qiita.com/gagagagazelle/items/f2c2ff6383c161cd74c5)
– [ruby 演習メモ II (variable and method)](https://qiita.com/gagagagazelle/items/a09eeb60c9e7913ea860)
– [ruby 演習メモ III (if, case, array, each by leap year)](https://qiita

元記事を表示

OTHERカテゴリの最新記事