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

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

【Rails】partialでeachしたいな

## 初めてのQiita投稿
です。
プログラミング言語はもとより、日本語すら怪しい。
(にほんうまれ、にほんそだち)

だから、なるべく簡単にかいてみるよ。
難しいことはわからないよ。

誠に遺憾なレベルのひとだから、ご指摘など大変喜ぶよ。

## やりたいな
eachで回すのをベタ書きするとすごいごちゃっとするな。
partialで切り取ってスッキリさせたいな。

## どう書くのかな

### partialでスッキリさせたい方はこう!

“`erb:Tops/index.html.erb
<%= render partial: "blog_card", collection: @blogs %>
“`

#### `partial: “blog_card”`ってなに?

– 雑に翻訳するとこういうことみたいだよ

“`
partialだよ:同じディレクトリにある_blog_card.html.erbが対象のpartialだよ
“`

– 同じディレクトリじゃなくて別のディレクトリ…例えば`app/views/layouts`に`_blog_c

元記事を表示

rack-attackで特定のURLにIPアドレス認証をするには

####はじめに
今回はrack-attackというgemを使って特定のURLをにIPアドレス認証をかけます。IPアドレス認証をするだけだったらいろいろな記事がありましたがなぜか特定のURLにだけかけたいという記事があまりなかったので忘れないよう記事にします。

##rack-attackをインストール
“`ruby:gemfile
gem ‘rack-attack’
“`
次にbundleコマンドを実行します。

“`ruby:
$ bundle install
もしくは
$ bundle install –path=vendor/bundle
“`

###準備
config/application.rbに以下の一文を追加してください。

“`ruby:config/application.rb
config.middleware.use Rack::Attack
“`

次にconfig/initializersの中にrack_attack.rbという名前でファイルを制作してください。

“`ruby:config/initializers/rack_attack

元記事を表示

Rspecの書き方

Railsを学習していく中でRspecでのテストも書けるようになりたかったのでまとめてみます。

##1 Rsepcの構造
四則演算のテストをもとに考え、Rspecの中で使用されているコードを確認します。

##2 describe
describeはテストの大きな括りを表します。
なので基本的にはこのdescribeの中にテストの内容を細かく書いていきます。

“`ruby
describe ‘四則演算’ do
end
“`

##3 context
contextはdescribeの中を分けたい時に使用します。
例えば四則演算でいうところの’足し算’、’引き算’、’割り算’、’掛け算’のようにdescribeの中に様々な種類があるときなどはこのcontextを使用します。

“`ruby
describe ‘四則演算’ do

context ‘足し算’ do
end
context ‘引き算’ do
end
context ‘割り算’ do
end
context ‘掛け算’ do
end

end
“`

逆に言うとdescribeの中を

元記事を表示

rails 開発日記2 ユーザー登録(devise)・deviseでのフラッシュメッセージ

# ユーザー登録機能の実装

*この記事は技術や知識の共有目的ではなく、完全に自己満足のアウトプット用です。

<開発環境>
1. ruby 2.6.3
2. Rails 5.1.6
3. AWS Cloud9
4. GitHub
5. Heroku(予定)

今回はユーザー登録機能を実装するにあたり、deviseを使用してみました。

### デバイスの実装

参考にしたページはこちらです。

Railsにdeviseをサクッと導入!認証機能の使い方も解説【日本語化】

基本的にはこちらのホームページ通りに進めましたが、フラッシュメッセージの実装に少し戸惑ったので詳しく記載していきます。

application.html.erb

“`

<%= render 'layouts/header' %>
<% flash.each do |key, value| %>
<%= content_tag(:div, value, class: "#{key}") %>
<% end %>

[Rails]コマンドで作る★3分BBS

Railsの復習がてらBBS作成の備忘録です。
今回初めてmysqlではなくscaffoldを使用するので
機能拡充しましたら随時更新予定です。

## 作成

“`ruby:ターミナル
$ rails new bbs
$ cd bbs
“`
## BBS作成

“`ruby:ターミナル
$ rails g scaffold テーブル名(例:articles) カラム名(例:content):string #カラムの型(今回はtext入れるのでstring)
$ rails db migrate
“`
## index作成と表示〜BBSのlinkを貼るところまで

“`ruby:ターミナル
#コントローラーを作成
$ rails g controller ディレクトリ名(例:home) index
“`

“`ruby:config/routes
Rails.application.routes.draw do
get ‘home/index’
resources :articles
root “home#index” #追記した箇所
# For deta

元記事を表示

RailsTutorial 7章 備忘録

#はじめに
Railsチュートリアルのアウトプットも兼ねた備忘録です。チュートリアルで簡単なアプリを作った後、チュートリアル で作成した物にプラスで機能をつけたり、または0からWEBサービスを作成したりする予定です。
所詮、初心者の備忘録なので理解が間違っているところもあると思いますがよろしくお願いします。
#ユーザー登録機能
ユーザー登録機能は以下の順で行なっていく

1. HTMLフォームを使用して登録情報を送信
2. ユーザーを新規作成してDBにデータを保存
3. 保存したデータをユーザープロフィールとして表示
4. それに伴うテストも追加

#デバック
ここからはDBから取り出した情報をもとに表示する内容を変えるいわゆる「動的なページ」を作成していきます。そのため今どこのなんの情報が取り出されているのかという事がわかった方が開発の効率が上がります。その為、デバック情報を表示できるようにしておきましょう。

“`html:applocation.html.erb


.
.
.

<%= render

元記事を表示

【Rails Tutorial11章】アカウント有効化機能の実装手順を整理してみました【中編】

##はじめに
Railsチュートリアル11章の内容を、少しでも理解の助けとなればと思い、割としっかり目に整理しました!
__備忘録です。__

##前提
Railsチュートリアル1〜10章までの内容が完了していること。

##内容
Railsチュートリアル11章の__アカウント有効化機能の実装手順__を、前中後半の3回に分けて整理おります。
中編である今回は、__アカウント有効化メール送信機能の実装__をしていきます!

前編→[__AccountActivationsリソースの作成__](https://qiita.com/kurawo___D/items/233ed8b4f8749c95df9e)
後編→__アカウント有効化機能の実装__

##1.アカウント有効化用のメールを送信する機能の実装
  ●__データのモデル化が完了したので、次はアカウント有効化メールの送信に必要な機能を記述していく__。

  ●__メールを送信する機能を実装するには、Action Mailerライブラリを使って、Userのメイラーを作成する必要がある__。
    ➡︎メイ

元記事を表示

railsチュートリアル 6章 初心者が意識すべき事

#初心者がrailsチュートリアル6章で学ぶべき事
1.DB Browser for SQLiteをダウンロード+基本的な使い方を理解する
2.正規表現について
3.6−3全て
##Browser for SQLiteのダウンロード+基本的な使い方の理解
ここは、僕自身かなり苦労しました笑
というのも、そもそもパソコンを使う事が苦手だったからです。
飛ばすこともできるのですが、Progateからrailsチュートリアルにきた人にとってはかなり良いツールだと思います!
エンジニアとして仕事をするということはコードを打つだけではなく、当たり前に様々なソフトウェアを使いこなす必要があります。(railsチュートリアルだけでも、**heroku**や**AWSのS3**など自分は結構苦労しました笑)
つまり、ソフトをダウンロード して使いこなすという意味でこれは大事です。
なので、ここではあえてどうすれば良いかは書きません(書かんのかーい)
正直、そこまで難しくない事を考えると、これができない方はパソコンを使う仕事に向いていないかもしれません。
なので、試行錯誤しながら頑張って見ましょう!!

元記事を表示

Ruby  n番目の素数を探せるアルゴリズム

“`ruby
@count = 1

def prime(n)
num = 2
count = 1
catch(:break_loop) do
while n > num do
if (n % num) == 0
# puts “#{n} は素数ではありません。”
throw :break_loop
end
num += 1
end
puts “#{n} は… #{@count}番目の素数です”
@count += 1
end
end

def loop1
2.step do |i|
prime(i)
# break if i == 100
end
end

def prime2(n, t)
num = 2
count = 1
catch(:break_loop) do
while n > num do
if (n % num) == 0
# puts “#

元記事を表示

【ruby】『ruby入門(メモ5)』恐竜hash(連想配列)を作ってみよう(windows10+ruby2.3.3)

###0.初めに
今回も参考urlの内容を自分なりに改修してみた。
ハッシュ配列に恐竜を追加できたのはうれしい。

###1.ハッシュとは
key(数値でも文字列でも可)とvalueの組み合わせを登録できる連想配列。

“`
書式:ハッシュ配列名={key1 => value1,key2 => value2,…}
“`
###2.ハッシュのkey集合
“`
書式:ハッシュ配列名.keys
“`

###3.ハッシュのvalue集合

“`
書式:ハッシュ配列名.values
“`

###4.ハッシュの要素(key,value)の追加(1)

“`
書式:ハッシュ配列名[新しいkey]=新しいvalue
“`

###5.ハッシュの要素(key,value)の追加(2)

“`
書式:ハッシュ配列名.store(新しいkey,新しいvalue)
“`
###6.ハッシュのkeyの存在確認(存在:true,存在しない:false)

“`
書式:ハッシュ配列名.has_key?(key名)
“`

###7.ハッシュを使ったコード例

“`ruby:has

元記事を表示

【Rails tutorial・11章】アカウント有効化機能の実装手順を整理してみました【前編・AccountActivationsリソースの作成】

##はじめに
Railsチュートリアル11章の内容を、少しでも理解の助けとなればと思い、割としっかり目に整理しました!
__備忘録です。__

##前提
Railsチュートリアル1〜10章までの内容が完了していること。

##内容
Railsチュートリアル11章の__アカウント有効化機能の実装手順__を前中後半の3回に分けて整理していきます。
前編である今回は、アカウント有効化機能を実装するのに必要となるリソースや、データモデルを作成していきます!

中編→[__アカウント有効化メール送信機能の実装__](https://qiita.com/kurawo___D/items/051ce6f6bb0837e3481a)
後編→__アカウント有効化機能の実装__

##1.AccountACctivationsリソースを作成する
  ●セッション機能を使って、アカウントの有効化リソースを作成していく。
    ➡︎アカウント有効化リソースを作成するにあたり、Userモデルに必要なデータを追加していくことが必要となる。

    ➡︎注意しなければならない点が1つあっ

元記事を表示

ユーザー管理機能の実装(2)

今回も、引き続き**ユーザー管理機能の実装**を行なっていきたいと思います!
1~7の手順で進めていきます
(2)では**3.viewファイルの追加**を行います
*(1)はこちらhttps://qiita.com/yni_se/items/482b992c748e134b3b03

#目次
1. deviseのインストール
2. Userモデルの作成
3. deviseのviewファイルの追加 **←いまココ!**
4. サインアップ機能の追加 **←いまココ!**
5. ユーザー情報編集機能の追加
6. ログアウト機能の追加
7. フラッシュメッセージの表示機能の実装

#3.deviseのviewファイルの追加
まず初めに、deviseのviewファイルを追加するためのディレクトリと作成しましょう!
作成するディレクトリは**2つ**です
・`devise`
・`users`
さらに、`devise`ディレクトリには、以下の**3つ**のディレクトリを作成しましょう!
・`registrations`
・`sessions`
・`shared`
ディレクトリが作成できたら、vie

元記事を表示

カラムの特定の値がいくつあるか(countメソッド)

countメソッドを使ってカラム値の合計を求めるのに苦労したのでメモ
ruby 2.6.3
rails 5.1.6

##特定の文字数や要素をカウントしたい場合
主の場合、Userモデル(親)、Wordモデル(子)という状況でUserモデルのViewでWordモデルのcompleteカラムのtrueという値がいくつあるのかを表示したいか模索していました。
##結論
特定の文字数や要素をカウントしたい場合はcountメソッドを使うとよい。
lengthやsizeといったメソッドもあるが、そちらはまた別の機会に。
##モデルの状況
**User.rb**

| id | name | email |
|:—————–|——————:|:——————:|
| 1 | saber | ~~ |
| 2 | lancer | ~~ |
| 3

元記事を表示

Rails scope とは わかりやすく

## Scopeとは
関連オブジェクトやモデルへのメソッド呼び出してとして参照される、よく使用されるクエリを指定できる。どのスコープメソッドも、ActiveRecord::Relationオブジェクトを返す。このオブジェクトに対して、別のスコープを含む他のメソッドを呼び出しを行うこともできる。

## メリット
スコープを使うことで、繰り返し何度も呼び出すクエリをスコープにまとめることができ、汎用性とコードがすっきりする。

## 基本的な使い方
– 使用したいControllerに対応するModelに記入する
– `scope :シンボル名, -> { クエリを指定 }`(ラムダじゃなくても書けますdo~end)

## 補足
###ActiveRecord::Relationオブジェクトとは
クエリを生成するための条件を持っておいて、必要に応じて適切なSQLクエリを生成・発行してくれる
その結果からオブジェクトを作って返したり、保持してくれている
例:User.all, User.where(name: ‘hoge’) などで帰ってくるものがActiveRecord::Relati

元記事を表示

Devise&omniauth-facebookアカウント認証

## はじめに
食べログのコピーサイトを開発中にSNS認証で結構躓いたので備忘録として書いています。:muscle:
【新規登録】 omniauth-facebookでアカウント情報を取得後、ニックネームを入力して登録
【ログイン】 Facebookボタンを押すだけでログイン
という感じをローカル環境で実装をしていきます :paperclip:
基本はこの[github](https://github.com/simi/omniauth-facebook)を見るのが1番です!

## 動作環境
* Ruby 2.5.7
* Rails 5.2.4.2
* Vagrantによる仮想環境

## ログイン機能
#### deviseをインストール
Gemfileの最後に、以下のように2行を追加して保存します。

“`ruby:Gemfile
gem ‘devise’
“`
追加したdeviseを、アプリケーションに読み込ませます。

“`
$ bundle install
“`
次に、deviseの初期設定を行います。

“`
$ rails g devise:install
`

元記事を表示

SMSの便利バージョン!プラスメッセージとは?プラスメッセージをビジネスで活用する

#プラスメッセージはSMSを便利にしたサービス
業務上、SMS認証を実装していて、SMSの利便性に気づいたので色々調べてみたところ、SMSをより便利にしたサービスがあるのを発見しました

**+メッセージ(プラスメッセージ)**
3キャリア合同で提供しているサービスで、携帯電話番号宛にメッセージを配信できて、画像や動画も送信できるサービス

最近企業が個人に配信することもできるようになったとのこと

ドコモのプラスメッセージURL(個人用)
https://www.nttdocomo.co.jp/service/plus_message/

#SMSとの違い
プラスメッセージとSMSの違いは
・プラスメッセージは1通2500文字近く送れる (SMSは1通70文字)
・プラスメッセージは画像や動画、位置情報まで送れる(SMSは文字のみ)
・プラスメッセージは受信者と双方向のやりとりができる(SMSは一方通行)
・プラスメッセージは送信者がサービスによって保証される・なりすましができない(SMSは送の保証なし)

以上のようにメリットがたくさんあるのがわかります。

送信できる文字数が増え

元記事を表示

Rubyでmysqlの操作

rubyでmysqlの接続、操作をする方法を記載します。
mysqlとgem “mysql2″はすでにインストール済みとして進めていきます。
データベースやテーブルの操作に関してはこちらも参考にしてみてください。
こちらも自分が書きました。
[基本的なmysqlの操作](https://qiita.com/hukuro310/items/49f22632ab36dc80fee4)

## 動作環境
– Windows10(ローカルOS)
– CentOS7(リモートOS)
– Oracle VM VirtualBox 6.1(仮想マシン)
– Ruby 2.7.1p83
– mysql

## データベースの作成
“`
CREATE DATABASE データベース名;
“`
ここでは`CREATE DATABASE training; `とします。

## テーブルの操作
### テーブルの作成
“`
CREATE TABLE テーブル名 (
カラム名1 データ型 オプション,
カラム名2 データ型 オプション,
カラム名3 データ型 オプション,
);
“`
今回は

“`

元記事を表示

【備忘録】text_field と text_area 違い

###結論

【text_field】 は入力できる内容が1行のみになります。

【text_area】 は複数行の内容でも入力が可能です。

##あとがき

サイト作成の際に、【text_field】のサイズを変更しようとしたのですが
1行しか入力できないことを知らず、必死にcssを当てたりbootstrapのドキュメントを読んだりして、時間を使ってしまいました。
初学者の方の参考になれば幸いです。

元記事を表示

” a server is already running” エラー対応の自動化(シェルスクリプト使用)

# エラーの原因

Dockerを使用して立ち上げたRailsコンテナのプロセスを「Ctrl + c」で強制終了し、「rails s」で再びサーバーを立ち上げようとすると” a server is already running” というエラーが発生することがあります。

原因は、pids/server.pid というファイルが残っていることです。手動ではありますが、コマンドラインで以下を実行すれば解決します。

“`
rm tmp/pids/server.pid
“`

毎回のように丁寧にDockerコマンドを入力すれば問題は発生しませんが、「Ctrl + c」で楽にサーバーを終了させたいというのが人間だと思います。しかし、エラーに怯え、エラーが発生した際に毎回手動対応することは大変に面倒なので、削除を自動化するシェルスクリプトを書きます。

まずは、Railsアプリのあるディレクトリに「delete-server-pid.sh 」というファイルを作成します。以下のコマンドを実行しても良いです。

“`
touch delete-server-pid.sh
“`

作成した

元記事を表示

railsでグラフ表示を行うための手引き

# railsでグラフ表示を行うための手引き
## 近況
 テックキャンプに通って早二ヶ月,コロナの影響で自宅学習になって三週間目となりました。最終課題はと言いますとインフラのメインに携わりながらフロント,サーバーサイドに取り組んできた感じです。最終課題における私のダメなところとしては,サーバーサイドの修羅場をくぐり抜けてきた他のメンバーよりもメソッドなりGEMなりの知識が少なく,サーバーサイドの貢献度が低いことです。ここはメンバーに手法を聞きつつ理解したり,個人アプリで反映させて覚えていこうと思います。逆に自分が行なった部分はもちろんある程度詳しくなったので,Qiitaの記事なり活用して残せたらと。**今回の内容は課題と全く関係ないけどね!!!**

## 本題
 私はサーバーサイドの学習教材としてrailsを用い,個人アプリでもお世話になるのですが,ある時このような疑問にかられました。**『図示ってどうするんだろう』**

結論からいうと,JSのライブラリchart.js(オープンソース)を組み合わせるのが一番手軽みたい。ここでは実際に個人アプリに実装するレーダーチャートを元にデー

元記事を表示

OTHERカテゴリの最新記事