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

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

【超基礎】Rails環境構築とよくでてくる用語

先日Railsの環境構築をしたところ、「???」となる用語が多く、大変時間がかかってしまいました。自分用のメモも兼ねて、Rails環境構築関連用語の説明をします。
間違いなどあれば、お手柔らかにお教えていただけると嬉しいです。

記事構成としては、Railsインストール時の概要を載せたあとに、詳しい用語の説明をし、最後にインストールの詳細手順を見ていきます。
#Railsことはじめ 〜大まかな手順〜 
Homebrewをインストール

rbenvをインストール+パスを通す

Rubyをインストール

Bundlerをインストール

Railsをインストール

おおかたこういった流れではないでしょうか。

#「???」
(RubyとRailsの説明ははぶきます)

##Homebrewってなんですか

Homebrew:MacOS用のパッケージ管理システム。パッケージの依存関係も管理してくれる万能屋さんです。

###(こまかい用語)
 ・パッケージ管理システム:パッケージをインストールしたり、アンインストールしたり、バージョンの管理ができるシステム

 ・依存関係:パッケージA

元記事を表示

【その6〜http→httpsへSSL化編〜】AWS(EC2)にRailsアプリをイチから上げる方法【画像付きで丁寧に解説】

#AWSにRailsアプリをイチから上げるシリーズ 項目表
|No|タイトル|
|:—|:—|
|その1|[ネットワーク、データベース設定編](https://qiita.com/Yuki_Nagaoka/items/975b7598806d6ae0c0b2)|
|その2|[EC2設定編](https://qiita.com/Yuki_Nagaoka/items/5be084c6efe1f797fd94)|
|その3|[サーバー設定、Railsアプリ配置編](https://qiita.com/Yuki_Nagaoka/items/dbb185feb6d4f051c2f2)|
|その4|[Railsアプリの公開編](https://qiita.com/Yuki_Nagaoka/items/1f0b814e52e603613556)|
|その5|[ドメイン設定編](https://qiita.com/Yuki_Nagaoka/items/3020f02d3fd74c8572a0)|
|その6|[http→httpsへSSL化編](https://qiita.com/Yuki_Na

元記事を表示

【その5〜ドメイン設定編〜】AWS(EC2)にRailsアプリをイチから上げる方法【画像付きで丁寧に解説】

#AWSにRailsアプリをイチから上げるシリーズ 項目表
|No|タイトル|
|:—|:—|
|その1|[ネットワーク、データベース設定編](https://qiita.com/Yuki_Nagaoka/items/975b7598806d6ae0c0b2)|
|その2|[EC2設定編](https://qiita.com/Yuki_Nagaoka/items/5be084c6efe1f797fd94)|
|その3|[サーバー設定、Railsアプリ配置編](https://qiita.com/Yuki_Nagaoka/items/dbb185feb6d4f051c2f2)|
|その4|[Railsアプリの公開編](https://qiita.com/Yuki_Nagaoka/items/1f0b814e52e603613556)|
|その5|[ドメイン設定編](https://qiita.com/Yuki_Nagaoka/items/3020f02d3fd74c8572a0)|
|その6|[http→httpsへSSL化編](https://qiita.com/Yuki_Na

元記事を表示

【その4〜Railsアプリの公開編〜】AWS(EC2)にRailsアプリをイチから上げる方法【画像付きで丁寧に解説】

#AWSにRailsアプリをイチから上げるシリーズ 項目表
|No|タイトル|
|:—|:—|
|その1|[ネットワーク、データベース設定編](https://qiita.com/Yuki_Nagaoka/items/975b7598806d6ae0c0b2)|
|その2|[EC2設定編](https://qiita.com/Yuki_Nagaoka/items/5be084c6efe1f797fd94)|
|その3|[サーバー設定、Railsアプリ配置編](https://qiita.com/Yuki_Nagaoka/items/dbb185feb6d4f051c2f2)|
|その4|[Railsアプリの公開編](https://qiita.com/Yuki_Nagaoka/items/1f0b814e52e603613556)|
|その5|[ドメイン設定編](https://qiita.com/Yuki_Nagaoka/items/3020f02d3fd74c8572a0)|
|その6|[http→httpsへSSL化編](https://qiita.com/Yuki_Na

元記事を表示

【その3〜サーバー設定とRailsアプリの配置編〜】AWS(EC2)にRailsアプリをイチから上げる方法【画像付きで丁寧に解説】

#AWSにRailsアプリをイチから上げるシリーズ 項目表
|No|タイトル|
|:—|:—|
|その1|[ネットワーク、データベース設定編](https://qiita.com/Yuki_Nagaoka/items/975b7598806d6ae0c0b2)|
|その2|[EC2設定編](https://qiita.com/Yuki_Nagaoka/items/5be084c6efe1f797fd94)|
|その3|[サーバー設定、Railsアプリ配置編](https://qiita.com/Yuki_Nagaoka/items/dbb185feb6d4f051c2f2)|
|その4|[Railsアプリの公開編](https://qiita.com/Yuki_Nagaoka/items/1f0b814e52e603613556)|
|その5|[ドメイン設定編](https://qiita.com/Yuki_Nagaoka/items/3020f02d3fd74c8572a0)|
|その6|[http→httpsへSSL化編](https://qiita.com/Yuki_Na

元記事を表示

【その2〜EC2設定編〜】AWS(EC2)にRailsアプリをイチから上げる方法【画像付きで丁寧に解説】

#AWSにRailsアプリをイチから上げるシリーズ 項目表
|No|タイトル|
|:—|:—|
|その1|[ネットワーク、データベース設定編](https://qiita.com/Yuki_Nagaoka/items/975b7598806d6ae0c0b2)|
|その2|[EC2設定編](https://qiita.com/Yuki_Nagaoka/items/5be084c6efe1f797fd94)|
|その3|[サーバー設定、Railsアプリ配置編](https://qiita.com/Yuki_Nagaoka/items/dbb185feb6d4f051c2f2)|
|その4|[Railsアプリの公開編](https://qiita.com/Yuki_Nagaoka/items/1f0b814e52e603613556)|
|その5|[ドメイン設定編](https://qiita.com/Yuki_Nagaoka/items/3020f02d3fd74c8572a0)|
|その6|[http→httpsへSSL化編](https://qiita.com/Yuki_Na

元記事を表示

【その1〜ネットワーク,RDS環境設定編〜】AWS(EC2)にRailsアプリをイチから上げる方法【画像付きで丁寧に解説】

#まえがき

先日、Railsで制作したWebアプリケーションを、AWSのEC2にデプロイしました。

最初はHerokuにデプロイして運用していたのですが、表示されるまで時間がかかる事から、AWSへ移行する事を決意しました。

先輩エンジニアの方々が残してくれた記事を参考に作業をしたのですが、バージョン更新に伴う仕様の変更等があり、様々なエラーと格闘し大変苦労しました。

AWSは本当にサービスが豊富です。豊富故に、初学者のエンジニアが手を出すと、何から手をつけて良いのか分からないという側面もあります。

同じ様に大変な思いをされている方がいると思いますので、RailsアプリをAWSへ上げる方法を極力画像付きで分かりやすく紹介致します。

この記事では、「Hello World」と表示されるだけの簡単なアプリ「greeting」をアップロードするまでの過程を
解説していきます。

本記事を制作時点では、AWSは1年間の使用料が無料となっておりますので、是非この無料期間を活用して、AWSへのデプロイに挑戦されてはいかがでしょうか。

AWSへアプリをデプロイした後、ドメインと紐付け、更

元記事を表示

Railsチュートリアル 第9章[余談] – Rails 5.0 以降、assigns(およびassert_template)は非推奨

# 概要

Rails 5.0 以降においては、`assigns`メソッドの使用は非推奨とされています。`assigns`(および`assert_template`)はRails本体に含まれなくなったため、別途`rails-controller-testing`というgemをインストールする必要があります。

# Railsチュートリアル本文において

そういえば、Railsチュートリアル本文では、[第3章](https://railstutorial.jp/chapters/static_pages?version=5.1#cha-static_pages)で**しれっと**`rails-controller-testing`をGemfileに書き足していました([リスト 3.2](https://railstutorial.jp/chapters/static_pages?version=5.1#code-gemfile_sample_app))。minitest reporters や Guard と違って説明もなかったのですが、ここで必要となるわけです。

“`:Gemfil

元記事を表示

人生逆転サロン 本日のお題(限定共有)

#Q27
名前、年齢、性別、管理者権限の情報を持ったユーザークラスを定義してインスタンスを作成してください。管理者権限の有無はtrueかfalseで表してください。

#Q28
Q27からの続き
Q28.作成した Userクラス からインスタンスを生成、 infoメソッド を実行し、目標の出力になるようにコードを書き足してください。
* user2 の name age gender に関してはご自分の情報で大丈夫です。
“`
class User

~~~~~

end

user1 = User.new(name: “神里”, age: 32, gender: “男”, admin: true)
user2 = User.new(name: “あじー”, age: 32, gender: “男”, admin: false)

user1.info
puts “———–”
user2.info
“`
“`
#出力結果

名前:神里
年齢:32
性別:男
管理者権限:有り
———–
名前:あじー
年齢:32
性別:男
管理者権限:無し
“`

元記事を表示

【Ruby】`all?`と類似メソッドまとめ

## はじめに
Rubyで**繰り返し処理**を使って**条件を満たしているかどうか**を確認したいことって多くないでしょうか。

今回はそのメソッドのうちの一つ`all?`とその類似メソッドについてまとめています。

## この記事が役に立つ方
– 繰り返し処理はつい`each`ばかりを使ってしまう
– 条件を満たしているかどうかは`if`ばかり使ってしまう
– Ruby初心者

## この記事のメリット
– `all?`が使えるようになる
– 繰り返し処理の引き出しが増える

## 環境
* Ruby 2.6.3

## `all?`メソッドとは?

[公式リファレンス](https://docs.ruby-lang.org/ja/latest/method/Enumerable/i/all=3f.html)によると、

> すべての要素が真である場合に true を返します。 偽である要素があれば、ただちに false を返します。
> ブロックを伴う場合は、各要素に対してブロックを評価し、すべての結果 が真である場合に true を返します。ブロックが偽を返した時点で、 ただち

元記事を表示

Railsを触っていたら”.yml”とかいう謎のファイルが出てきたぞ。簡潔に説明しろ

## 概要

yamlとはなんなのかについて、なるべく簡潔に、わかりやすくまとめてみた記事です。

解釈に間違い等ありましたらなんなりとご指摘いただければ幸いです!

## ざっくりと概要を説明しろ

配列、または連想配列(ハッシュ)を独自の書き方で作成するためのファイルです。

そして、視覚的に読みやすい、という点でよく設定ファイルに使用されているファイル(らしい)です。

“`database.yml

# railsでよく見る”database.yml”

default: &default
adapter: postgresql
host: 127.0.0.1
encoding: utf8
username: postgres
password: postgres

development:
<<: *default database: postgres test: <<: *default database: postgres_test production: <<: *default database: postgres `

元記事を表示

乃木坂46公式ブログスクレイピング~2011年からの全ての記事をDBに収めて画像も保存してやる!~

1年ちょっとの間スクレイピングエンジニアのアルバイトをしている大学院生です。
今回はタイトルの通り、乃木坂46が結成された2011年から2019年現在の、卒業メンバーを除くすべてのメンバーのブログ記事をスクレピングしてDBに格納するコードを書きました。乃木坂のブログをスクレイピングしている記事は何件かありましたが、Rubyで書いてる人や、DB保存までしている、2011年まで遡ってスクレイピングしてる記事は珍しいかなと思い投稿します。
#####**open-uriだけでやります!**
環境はWSLのUbuntu18.04で、Rubyとmysqlのバージョンは以下の通りです。

“`shell:
$ ruby –version
ruby 2.4.3p205 (2017-12-14 revision 61247) [x86_64-linux]
$ mysql –version
mysql Ver 14.14 Distrib 5.7.23, for Linux (x86_64) using EditLine wrapper
“`
[github](https://github.c

元記事を表示

[Ruby]使用頻度は高くないがここぞという時に知っていたら便利そうなメソッドたち

使用頻度は高くないので忘れちゃいそうだけど、ここぞという時に知っていたら便利そうなメソッドを備忘のためにまとめておきます。
(便利かつ高頻度で使うものは忘れないと思うのでここには書きません)

今後も便利そうだと思うメソッドがあったら随時追加していく予定です。

# clamp
数値の上限・下限を制限する

“`ruby
523.clamp(0, 100)
# => 100
“`

# email_address_with_name
action_mailerのtoに<>や”が含まれていた場合、エスケープしてくれる

“`ruby
# <>や”がnameやemailに入っていてもエスケープしてくれる。
mail(to: email_address_with_name(@user.email, @user.name))
“`

# squish
スペースやタブ、改行をいい感じに除去してくれる

“`ruby
” \n foo\n\r \t bar \n”.squish
# => “foo bar”
“`

元記事を表示

RubocopでデフォルトOFFにされているものたち

# 概要
Rubocop には現在400弱の Cop が存在するが、[config/default.yml](https://github.com/rubocop-hq/rubocop/blob/master/config/default.yml) にて `Enabled: false` とされているものについては、明示的に有効化しないとチェックしてくれない。
そこで、デフォルトでオフになっている Cop にはどんなものがあるのかを調べた。

2019/11/12 時点での master ブランチ。バージョンは 0.76。

– Bundler/GemComment
– Layout/ClassStructure
– Layout/FirstArrayElementLineBreak
– Layout/FirstHashElementLineBreak
– Layout/FirstMethodArgumentLineBreak
– Layout/FirstMethodParameterLineBreak
– Layout/HeredocArgumentClosingParenthesi

元記事を表示

Ruby勉強日誌3

クラス

“`class.rb
class ◯◯◯◯◯
attr_accessor :□□□, :△△△
end
“`

インスタンス

“`instance.rb
変数 = クラス名.new
変数.属性 = ✖️✖︎
puts 変数.属性
“`
インスタンス変数:名前が@で始まる変数

initializeメソッド:インスタンス作成時の初期値を設定

“`initialize.rb
class BillRecord
attr_accessor :name, :bill
def initialize(name, bill)
@name = name
@bill = bill
end
end
data = BillRecord.new(“◯◯”,”✖︎✖︎”)
“`

元記事を表示

sort_byを使用してみて

“`ruby:meibo2.rb
personal_data = [
[‘john’,’m’,’18’],
[‘paul’,’m’,’20’],
[‘alice’,’f’,’15’],
[‘dabid’,’m’,’17’],
[‘jasmin’,’f’,’17’]
]
“`
この配列が存在した時に最後のカラムである年齢順に並べたい時

“`ruby:sort_by.rb
personal_data.sort_by!{|personal|
personal[2].to_i
}
“`

と文字列を数字の列に変換してsort_byメソッドを使用することで数字が小さい順に並び替えが起こります。
sort_by!の最後の!は、破壊的なメソッドで前後の処理に影響するので注意を払って書いた。
自分が躓いてしまった点は

“`
.sort_by {|k, v| v }
“`
のようにkeyとvalueが存在し整数などの数字を順番に並べたいので

“`
to_i
“`
メソッドを使用しなければいけないことにきずいた。
メソッドにおいて基本的な形を意識して文字列、整数を使う意識を実

元記事を表示

Rails データ内容の制限

# データの内容を制限する

NOT NULL制約

すでに作成してあるhogeテーブルのnameカラムにNOT NULL制約をつける場合。

“`:ターミナル
$ rails g migration ChangeHogesNameNotNull
Running via Spring preloader in process 6959
invoke active_record
create db/migrate/xxxxxxxxxxx_change_hoges_name_not_null.rb
“`
マイグレーションファイルが生成されたらそのファイルの中身を編集する。

“`ruby:db/migrate/xxxxxxxxxxx_change_hoges_name_not_null.rb
class ChangeHogesNameNotNull < ActiveRecord::Migration[5.2] def change change_column_null :hoges, :name, false end en

元記事を表示

Ruby 文法の学習メモ・チートシート(自分用)

Ruby 2.6.5
完全に自分用なのであしからず。多分何かしら間違っています。

## if

“`ruby
if value==2
# 略
elsif value%2==0 # else ifではない
# 略
else
# 略
end
“`

## times, while

“`ruby
5.times do|i|
puts “#{i}回目のループ” # => 0,1,2,3,4回目のループ
end

n=0
while n<10 do puts n n += 1 # インクリメント(++)は使えない end ``` ## each, each_with_index ```ruby ["a","b","c"].each do |s| puts s end ["a","b","c"].each_with_index do |s, i| puts "#{i}個目の要素は#{s}" # => 0個目の要素はa …
end
“`

## begin, rescue

“`ruby
begin
i = gets.to_i #標準入力を

元記事を表示

【Ruby】7桁の整数で保存した郵便番号にハイフン(-)を入れる方法

`1234567`のように、DBに7桁の整数で郵便番号を保存。
一方、ビューでは`123-4567`のようにハイフンを入れて表示したい場合。

以下のように記述すればOKです。

“`
1234567.to_s.insert(3, “-“)
“`
`to_s`で整数を文字列に変換。
`insert(3, “-“)`で3文字目の後にハイフンを挿入しています。

参考になった記事
https://qiita.com/_kkoichi/items/f8758a438b2363943922

元記事を表示

Ruby 配列、範囲オブジェクトについて

配列での範囲オブジェクトの使い方についてさらっと解説します。
配列zに対して1.2.3.4.5の要素を入れたい場合

“`ruby
z = [1,2,3,4,5]

puts z
1
2
3
4
5
“`
とすると思います。
しかし、範囲オブジェクトを使えば

“`ruby
z = (1..5)to_a

puts z
1
2
3
4
5
“`
わざわざ全ての数字を記入しなくても範囲を指定してあげるだけで済みます。

元記事を表示

OTHERカテゴリの最新記事