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

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

RubyでルールのあるSortプログラムを作る

#はじめに
rubyでオリジナルのソートを作るためのメモ
JSONが入っているのは自分のローカルサーバで作りやすかったから

#コード
“` ruby:ruby.rb
require ‘json’

$jsonfile = <

元記事を表示

FontAwesomeの導入

##FontAwesomeとは?
ウェブフォントの一種。
文字を扱うのと同じようにアイコンを表示させることができる。

##導入方法
FontAwesome用のGemがをインストールする。
全ての環境で使用したいので、最下部に以下のコードを記載する。

“`ruby:Gemfile
gem ‘font-awesome-sass’
“`
bundle installとサーバ再起動を忘れずに。

##assetsフォルダに書き込み

“`ruby:application.scss
@import “font-awesome-sprockets”;
@import “font-awesome”;
“`

###補足
CSSの仕様で、paddingなどの設定を行った場合、その要素全体のサイズが
大きくなる場合がある。以下の記述を追加すると、paddingやborderの設定を行っても、
要素の大きさがwidthやheightで指定したサイズが維持される。

“`ruby:messeges.scss
* {
box-sizing: border-box;
}
“`
「*」は、全

元記事を表示

Before Rails Tutorial2章 Scaffold を用いた高速なアプリケーション構築 及び MVCの理解

本投稿は講義資料であり、Rubyの基礎は理解しているが、rails tutorialで躓く読者を対象としています。
[1章:環境構築](https://qiita.com/earth660/items/a51874eba618e2aa5ce6)
[2章:Scaffold を用いた高速なアプリケーション構築 及び MVCの理解](  https://qiita.com/drafts/c791f1e46875e8a9994e)
[3章:Scaffold を用いない開発方法 及び 応用](https://qiita.com/earth660/items/161fa9090860cbd174bf)

#1.Scaffold

この章では、Railsの強力な機能をいくつか紹介するためのアプリケーションを作成します。
大量の機能を自動的に生成するscaffoldジェネレータというスクリプトを使って**蔵書管理アプリケーション**を生成し、それを元にRailsの概要を一緒にみていきましょう。

*3章以降では、scaffold は使わずに、自力で作る方法を学びます。

#### scaffold コ

元記事を表示

Before Rails Tutorial3章 Scaffold を用いない開発

本投稿は講義資料であり、Rubyの基礎は理解しているが、rails tutorialで躓く読者を対象としています。
[1章:環境構築](https://qiita.com/earth660/items/a51874eba618e2aa5ce6)
[2章:Scaffold を用いた高速なアプリケーション構築 及び MVCの理解](https://qiita.com/earth660/items/c791f1e46875e8a9994e)
[3章:Scaffold を用いない開発方法 及び 応用](https://qiita.com/earth660/items/161fa9090860cbd174bf)

前章では、Scaffoldを用いて高速でアプリケーションを構築しました。
自動化された部分も多く、現段階では、大まかな理解であるとおもいます。

今回は、route Model View Controller それぞれ自分で作っていきます。
とはいっても、継承まで含めてすべて書くには理解することが膨大で大変ですので、
前回も使用した generate は使用していきます。

まずは、R

元記事を表示

あとからgem sqlite3を削除したらエラーが出た

rails new するときに ‘-o’ コマンドを入れてなくて、あとからgem ‘sqlite3’を消したら以下のエラーが出た

`ActiveRecord::ConnectionNotEstablished: No connection pool with ‘primary’ found. `

環境はRails5.2

まずは config/application.rb から

“`ruby
require “ative_record/railtie”
“`
をコメントアウト。

次に、config/environments/development.rb 内を “active_record”で検索して

“`ruby
config.active_record.migration_error = :page_load
config.active_record.verbose_query_logs = true
“`

この2つをコメントアウト!
多分これで問題ない!

おっと。
production.rbの方もコメントアウトしなければ。。。

“`ruby
config.

元記事を表示

RailsアプリでFacebook Twitter GitHubのOAuth認証を可能にした

表題のとおりです。
とりあえず、主要SNSと個人的に入れたかったGitHubを対応させました。
パラメータそれ自体は汎用性が高いので、今後その他のサービスの認証機能も用意に対応できそうな感じ。

# 注意

この記事は、1年ほど前にQiitaに投稿したものを、同じ内容で再投稿したものになります。
そのため、内容が古くなっている可能性があります。

以下のコードは、Herokuにデプロイをする前提で書いています。

# 参考

[RailsでFacebookログインを実装する](https://workabroad.jp/posts/2099)
[【Rails4.2.x】omniauth(twitter/facebook/github)実装まとめ](https://qiita.com/Hassan/items/176bc2c6fd75a3e00111)
[Twitter API 登録 (アカウント申請方法) から承認されるまでの手順まとめ](https://qiita.com/kngsym2018/items/2524d21455aac111cdee)

正直コーディングそのものより、

元記事を表示

resourcesメソッドはとっても便利!

## はじめに
> この記事はプログラミング初学者である私自身の備忘録として残します。

プログラミングの学習を初めてからというもの、ルーティングの記述ではずっとresourcesメソッドを使い続けていたので、なぜこのメソッドを使うのかおさらいしてみました。結論「やっぱり便利だな〜」。

## ルーティング(routes.rb)の記述に際して
resourcesメソッドの **不使用時** と **使用時** のコードを比べてみました。
>あれ?そもそもルーティングってなんだっけ?って思った方は、[こちら](https://wa3.i-3-i.info/word1498.html)を読んでみてください。

“`ruby
### resourcesメソッド ** 不使用時 **
root to: ‘posts#index’
get ‘/posts’, to: ‘posts#index’
get ‘/posts/new’, to: ‘posts#new’
post ‘/posts’, to: ‘posts#create’
“`

“`ruby
### resour

元記事を表示

Ruby日付クラスで暦を操作する(生成/切り替え)

# 前説
Rubyの [日付クラス](https://docs.ruby-lang.org/ja/2.6.0/class/Date.html) の暦日操作をまとめます。
ユリウス暦/グレゴリオ暦を念頭に、暦日計算に必要な日付インスタンスの生成と、暦の切り替えを行います。

# 環境

念のためバージョンを記載します。

“`sh
% ruby –version
ruby 2.6.2p47 (2019-03-13 revision 67232) [x86_64-darwin16]
“`

ただし、これから触れるDateクラス/メソッドは 少なくとも [Ruby1.8.7](http://doc.okkez.net/1.8.7/view/class/Date) から存在しており、バージョン非依存の挙動と考えられます。
また、以下の例文は全て `irb` で示します。

# エラー
特定の過去日を指定して日付オブジェクトを生成した場合、以下のようなエラーが発生します。

“`ruby
% irb
irb(main):001:0> require ‘date’
=> true
irb(

元記事を表示

Ruby 超基礎をようやくわかった私のメモ書き

# ハッシュの襲来

ハッシュってなんやねん。ハッシュドポテトか?と、さらに勉強しても意味わからんし、ラディッツ並の絶望が押し寄せました。
悟飯の様にキレてやろうかと思いました。「お父さんをいじめるなー!!」って、そんで「あっ!悟飯と仲良くなれそう!」って唐突に思ったんですが、ビーデルというスペックの高い奥さんをもらい、さらには頭の良さと運動神経が圧倒的に違うので仲良くはなれませんね。嫉妬しかないです。

先生に見られたら怒られそうなのでハッシュにいきます。
ざっくりですが私のイメージは、
『たくさんコード書くの超めんどくさいから空箱の中にそれぞれ名前のつけたキーと値をつけて保存して、必要な時に取り出しちゃおうぜ!』ってことだと思います。
イメージはポイポイカプセルですね。
書き方なんですが、
post = {} でハッシュの生成で {}これが保存先、つまりポイポイカプセル
その次に何を入れるかを決めます
例エヴァ
post[:name] = “仙豆” postの部分がハッシュ名、ちなみ可読性のある名前をつけましょう。基本的には自由です。そしてnameがキーです。仙豆が値です。ちなみに

元記事を表示

【Rails】Active Jobについてゼロから理解する

# 概要
**RailsのActive Job**についてゼロから理解する為に調べたことをまとめます。

– 本格的なアプリでは**往々にして時間のかかる処理が発生**する
– 大量のデータ集計、外部サービスとの連携、メール送信など
– そしてこれらの処理はリアルタイムに完了してなくても良い場合もある
– **アプリから実行すべき処理(ジョブ)**を**待ち行列(キュー)**に登録して**後から実行(非同期実行)**することで、アプリのレスポンスを改善できる!

– **Active Job**とは、そのようなジョブの管理から実行までの管理する為のモジュール
– Active Jobそのものは、基本的に、ジョブ操作の為のインタフェース(メソッド名などの決まりごと)を提供しているに過ぎない
– 実際にジョブを実行するのはジョブ管理ライブラリの役割(**Delayed Job**や**Sidekiq**)
– アダプターを切り替えれば、アプリケーションをほとんど改修することなくバックエンドのジョブ管理ライブラリを自由に切り替えられる

# やってみた
## delayed_j

元記事を表示

vscodeで”Ruby Solargraph”を使用可能にするまで

# 手順(Macbookを使用)

1. rbenvをインストールする(gemインストールを有効にするため、PATHをrbenvで統一する)

“`
brew install rbenv ruby-build
“`

1. rbenvを使用して最新安定バージョンのrubyをインストールする(opensslのインストールに時間がかかるため、10分程度)

“`
rbenv install -l
rbenv install x.x.x
“`

1. インストールされたことを確認する

“`
rbenv versions
“`

1. インストールしたrubyバージョンに切り替える

“`
rbenv global x.x.x
“`

1. rbenvの環境変数をzshrcに設定する

“`
vi ~/.zshrc
# rbenvへのPATH
[[ -d ~/.rbenv ]] && \
export PATH=${HOME}/.rbenv/bin:${PATH} && \
eval “$(

元記事を表示

【Rails】simple_calendarを日本語表記にする方法

Railsでsample_calendarを導入したのですが、日本語表記にするのに少し手間取りました。

しかし、無事解決することができたので共有したいと思います。

| Railsのバージョン | 5.2.3 |
|:—————–|——————:|:——————:|
|Rubyのバージョン | 2.5.1 |

###手順1

“`config/application.rb
config.i18n.default_locale = :ja
“`
まずはこいつを追加します。

###手順2

“`config/locales/ja.yml
ja:
date:
abbr_day_names:
– 日
– 月
– 火
– 水
– 木
– 金
– 土
abbr_month_names:

– 1月
– 2月

元記事を表示

Ubuntuにてrails6.0の環境構築(備忘録)

Ruby on Rails 6.0を、以下記事を参考にさせていただきながら、環境構築をしました。(厳密にいうとまだできてませんが)
備忘録として残す&誰かのお役に立てれば&なぜ最後だけできないのか誰か教えてほしい、ということで書きます。

**[参考記事はこちら](https://qiita.com/Gushi_maru/items/f3b5cc43e135e678085f)**
## やったこと
上記記事どおりに環境構築。

“`
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
“`
上記実施時に
> fatal: destination path ‘パス名’ already exists and is not an empty directory.

って出て困惑しましたが、すでにあるから置けないよってことらしいので気にせず実施。
# 未解決の部分

すべて実施し、よっしゃあ最後だ!終わった!と思って起動しようとしたところ、

“`
:~/dev/sample$ rails s -b 0.0.0.0
/パ

元記事を表示

Ruby / Rails資料

## Rails関連の情報源

### Railsガイド
* [Action Controller の概要](https://railsguides.jp/action_controller_overview.html)
* [レイアウトとレンダリング](https://railsguides.jp/layouts_and_rendering.html)
* [Rails のルーティング](https://railsguides.jp/routing.html)
* [Active Record マイグレーション](https://railsguides.jp/active_record_migrations.html)

元記事を表示

【Rails】リロードしないとJavaScriptが動かない!【簡単に解決】

#はじめに
以前`jQuery`を使ってタブメニューの切り替えを実装したときに、
ビューを開いた__初回__は非同期で切り替わるのに、
別のページに移動したり
「戻る」ボタンを押したあと再びタブメニュー画面に戻ると、、、、

動かない、、、!なぜだ、、!

なんて経験をして1日無駄にしたことがあります。
__jQueryやビュー画面のコードは間違ってないはず!なぜ!__って人向けの記事です。

#解決方法①

各`link_to`ごとに`turbolinks`とやらを無効にすればOKです。簡単です。

“`erb

<%= link_to "ホーム", root_path, data: {"turbolinks" => false} %>
“`
`data: {“turbolinks” => false}`は遷移先ページのみ`turbolinks`を切ることが出来ます。

※`turbolinks`とは、ページ遷移を`Ajax`に置き換え、`JavaScript`や`CSS`のパース(解析・変換)を省略することで高速化する`gem`で、`Rails4`からはデフォルトで使用されてい

元記事を表示

クラスとインスタンスについて

クラスは属性、メソッドを定義する場所
インスタンスはクラスに基づいた実態を作成する

流れ
クラスの生成

“`ruby
class クラス名(頭文字は大文字)
end
“`

クラスメソッドを定義する
定義

“`ruby
class クラス名(頭文字は大文字)
def self.メソッド名
end
end
“`

呼び出し

“`ruby
クラス名(頭文字は大文字).メソッド名(引数)
“`

インスタンスの生成 newメソッドをつかう

“`ruby
変数 = クラス名(頭文字は大文字).new
“`
インスタンスメソッドの生成
※インスタンス定義のクラス内で生成する必要

“`ruby

def メソッド名
end
“`
呼び出し
インスタンス.メソッド名

クラス変数
クラス内であればどこでも使用できる変数。クラスメソッド、インスタンスメソッドどちらでも使用できる
定義
クラスの定義内で定義する

“`ruby
class クラス名
@@クラス変数
end
“`
インスタンス変数
インスタンス内で使用できる変数。インスタンスメソッド

元記事を表示

新規Railsプロジェクト作成手順(Rails 6)

# 目的
Ruby on Rails 6,MySQL,RSpecを用いた環境を構築し,サーバーを起動してエラーなく最初のページが表示されるようにする.

# 開発環境
MacOS High Sierra 10.13.6
Ruby 2.7.0
Ruby on Rails 6.0.2.1

# 前提
1. rbenv,Rubyのインストール
2. MySQLのダウンロード
3. rbenvへのbundleインストール(下記)

“`
$ rbenv exec gem install bundler
$ rbenv rehash
“`

# 手順
1. プロジェクトを作成したいディレクトリに移動
2. Railsインストール
3. 上記のRailsを元にrails new
4. Railsプロジェクトのセットアップ

# 1. プロジェクトを作成したいディレクトリに移動
“`
$ mkdir projects
$ cd projects
“`

# 2. Railsインストール
1. Gemfile作成
2. Gemfile書き換え(もちろんvimをはじめとしたエディタで編集してもお

元記事を表示

Ubuntu で最新版の Ruby をインストール

今さらながら、自分が分かりやすいように最新版の Ruby をインストールする方法をまとめたいと思います。
Windows Subsystem for Linux の Ubuntu 16.04 上で動作確認しました。

# 1. 既に `apt` でインストールされている場合は一度アンインストール

本記事では `apt` 以外の手段でインストールするため、既に `apt` でインストールされている場合は一度アンインストールします。

“`bash:アンインストール
sudo apt purge ruby rbenv ruby-build
rm -rf ~/.rbenv
“`

# 2. インストール

Ruby のインストールは色々と罠がありますが、`rbenv` と `ruby-build` を `git clone` して `rbenv install` するのが一番良さそうです (`apt` は使わずに) 。
ちなみに、Ruby のインストールはかなり時間がかかります。

“`bash:インストール
git clone https://github.com/rbenv/rb

元記事を表示

rails環境構築その3【terraform】

# はじめに
terraformをつかってAWS(EC2,RDS)を作成します。

# 全体の流れ
1. terraformインストール
2. AWSでIAMユーザー作成
3. AWS CLI導入
4. AWS CLIにIAMユーザーの登録
5. terraformとは
6. terraform導入
5. プロバイダーの設定
6. VPC作成
7. サブネット作成
8. インターネットゲートウェイ作成
9. ルートテーブル作成
10. EC2作成
11. Security Groupの作成
11. RDS作成

参考
* [10分で理解するTerraform](https://qiita.com/Chanmoro/items/55bf0da3aaf37dc26f73)

# terraformインストール

“`
$ brew update
$ brew install terraform
“`

# AWSでIAMユーザー作成
参考
* [Identity and Access Management へよ

元記事を表示

Dockerコンテナでの設定ファイル生成にテンプレートとしてERBを使う

Dockerコンテナを起動する際に、環境変数で渡したパラメーターを使って設定ファイルを作りたいことがある。
例えばsambaにアクセスするとき、ユーザー名が foo なら許可、それ以外は不許可としたければ設定ファイルは以下のようにする。

“`samba
[global]
log file = /var/log/samba/%m

[share]
path = /mount
guest ok = no
valid users = foo # ユーザー foo ならアクセスを許可する
“`

このユーザー名を可変にしたいとしよう。Docker で `docker run -e USER=foo -e PASSWORD=pass …` のようにしたいなら、以下のようになる。

### Dockerfile

“`docker
FROM ubuntu:latest

RUN apt update \
&& apt install -y \
samba

COPY samba.sh /root/

EXP

元記事を表示

OTHERカテゴリの最新記事