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

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

使えるコードレビューツール

##コードレビューツール
コードレビューツールとは、文法・バグ・コーディングスタイルを自動で分析するツールです。
代表的なものとしてRubocop、ESlintなどがあります。
##Eslint
EslintはJavascriptの静的コード解析ツールです。Javascriptで書かれたコードを解析し、明らかなバグ・不適切なコーディングスタイルを指摘してくれます。
参考サイト
[Eslint公式(英語)](https://eslint.org/)
##Rubocop(ルボコップ)
RubocopはRubyの静的コード解析ツールです。「インデントが揃っていない」 「無駄な改行・スペースがある」などの指摘をRubyStyleGuideに基づいて行ってくれます。
###Rubocopの導入
Gemfile

“`
#省略
group :development do
gem ‘web-console’, ‘>= 3.3.0’
#省略
gem ‘bullet’
gem ‘rubocop’, require: false #追加
end
#省略
“`
ターミナル

“`
$b

元記事を表示

【ruby】『ruby入門(メモ2)』文字列(恐竜)を表示しよう(windows10+ruby2.3.3)

###文字列表示プログラム

“`ruby:ruby_string
# ” 文字列を全て出力
puts “Tyrannosaurus #{3*4}”
puts ‘Tyrannosaurus #{3*4}’

print ‘Tyrannosaurus_print ‘
#文字列おける+,*
#+:文字列の連結
puts “Tyrannosaurus “+”Rex”

#*の後ろの数字の数だけ表示
puts “Tyranosaurus “*5
“`

###実行結果

“`
c:\ruby_pg>ruby ruby_string.rb
Tyrannosaurus 12
Tyrannosaurus #{3*4}
Tyrannosaurus_print Tyrannosaurus Rex
Tyranosaurus Tyranosaurus Tyranosaurus Tyranosaurus Tyranosaurus
c:\ruby_pg>
“`

###3.実行結果からわかること

__(1)printでは「文字列表示のみ」だがputsは「文字列の後ろに改行を出力する」__
__(2

元記事を表示

【Rails】seedファイル使い方

#はじめに
学習中の備忘録です。

#概要
* 通常のデータ登録
* ancestryを使用した際のデータ登録

#前提
Rails 5.2.4.2

#通常のデータ登録
今回は格言をランダムで表示する為に、messageテーブルにcontent,author,descriptionを登録する。

“`ruby:seeds.rb
Message.create([{content: “自分自身を信じて~”, author: “ゲーテ”, description: “ドイツの詩人”},
{content: “たいていの人は~”, author: “バーバラ・ブラハム”, description: “米国の女性ビジネスコンサルタント”},
#~省略~
{content: “人間のほほえみ~”, author: “マザー・テレサ”, description: “カトリック教会の修道女、ノーベル平和賞受賞”}
])
“`
rails db:seedを実行

“`:ターミナル
% rails db:seed
“`
seed後のmessageテーブル

元記事を表示

Ransackを利用した検索フォームの作成方法

# Ransackとは?
[公式リファレンス](https://github.com/activerecord-hackery/ransack)に
>Ransack enables the creation of both simple and advanced search forms for your Ruby on Rails application

とある通り、Ransackとは**Ruby on Railsを用いて開発しているアプリケーションに検索フォームを作成するためのGem**です。

## Ransackのインストール
Gemfileに`gem ‘ransack’`と追記して`$bundle install`。以上です!

#Ransackの使い方
本記事では、私がRansackを勉強する際に作成した[こちらの簡単なアプリ](https://github.com/yohei222/ransack_practice)で、Ransackを使っている箇所を中心に説明していきます。
*Ransack以外の説明が少ないため、全体像を掴みたい場合は[ソースコード](https:/

元記事を表示

Railsチュートリアル9章攻略の第一歩を踏み出したい!【Remember meチェックボックス編】

##はじめに
Railsチュートリアル9章の内容について、少しでも理解の助けになるよう簡単にまとめてみました。
【[セッション永続化編](https://qiita.com/kurawo___D/items/18807bdce09c760f976b)】に引き続き今回は、【Remember meチェックボックス】についてまとめていきます!

##こんな方に読んで欲しい
Railsチュートリアルにてログイン機能を実装しており、尚且つ9章を終えたが理解度があまり足りていないかもと感じている方。
あと私自身。

##内容
セッション永続化を、ユーザーが自由に選択できるようにするためのチェックボックス機能の実装。

内容のほとんどを箇条書きでまとめてあります。
キリの良いポイントまで一旦まとめてから、コードの記述を行っています。

演習に関しては割愛してます。

##実装手順
__1.Remember meチェックボックスの実装__
__2.Remember meチェックボックスをテスト__
__3.Remember me機能自体のテスト__

##1.Reme

元記事を表示

Ruby じゃんけんゲーム作成

Rubyでじゃんけんゲームを作成していて、つまづいた箇所を記載していきます。
####つまづいた箇所

“`Ruby
puts “数字を入力してください。”
puts “0:グー, 1:チョキ, 2:パー”

input_hand = gets.to_i
while true
if input_hand == 0 #if 条件を書く(「input_hand」(取得した値)が「0, 1, 2」のいずれかの場合だった場合)
return input_hand #「input_hand」(取得した値)をそのまま返します。
elsif input_hand == 1
return input_hand
elsif input_hand == 2
return input_hand
else
puts “もう一度数字を入力してください。”
puts “0:グー, 1:チョキ, 2:パー”
input_hand = gets.to_i
end
end
#以降じ

元記事を表示

-これからポートフォリオを作成する方へ- 設計図の作成方法:後半

先日の記事に続き、後半をまとめていきます。
残すはサイトマップと、ワイヤーフレームです。
このあたりを整理することは、Ui/UXに繋がる部分です。バックエンドエンジニアを目指す方は、フロント分野に対し高度な技術は要求されませんが、UI/UXは評価されるポイントなのでこだわることをオススメします。

サイトマップ・ワイヤーフレーム作成時はこちらを参考にしました。
ポートフォリオサイトの作り方と制作過程を解説【Webポートフォリオ】

ポートフォリオサイトの作り方と制作過程を解説【Webポートフォリオ】

#●サイトマップ
画面変移図のことです。
ページのリンクを整理するために必要になります。
![スクリーンショット 2020-04-10 22.28.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553621/0f95aba9-6eb9-42e5-ba51-957b68104be5.png)

これを作成しておくと、ポートフォリオの全体像を把握できたり、各ページのリンクをまとめることができ

元記事を表示

仕事をするならこのくらいは完璧だろうか? 恥を知れ 恥をかけ

これまでの動いてればヨシ的なノリを猛省して、「今更これ知らんかったの!?」みたいな恥を捨ててアウトプットしていくことにした。未経験からのロケットスタートじゃなくて1年働いてからだけど、やらないよりマシだと思うし。

今からでも第一弾としてツイッターで過去に見たツイートで「未経験のRailsエンジニアが仕事を始める前にわかっているかのチェック項目」があったから、それを取り上げる。一つずつ完璧にわかるか見てみたら意外と説明できない項目・できない項目が多かった。恥ずかしい。
#map(&:to_i)の意味がわかる
知らんかった。使わずに書いてた。ごめんなさい。

“`ruby
array = [“10”, “20”, “30”]
array.map(&:to_i)
#=> [10, 20, 30]
“`
シンボルでを引数にすると自動的にto_procちなみにto_i(文字列→integer), to_s(数値→string)もいつもググってから使っていた。いい加減覚えます。
ちなみにfor, whileも忘れていたんだけど、昔勉強したな〜っていう感じだしあんまrubyで好まれないのでまあ

元記事を表示

素人がWebサービスを作る備忘録(実装編)②

#はじめに
この記事は[実装編①](https://qiita.com/bArUsan1Gou/items/36aed56b37a771fb61a1)の続きです。宜しかったらそちらもご覧いただき間違っている点などあればご指摘ください。
また、今回は初めてのポートフォリオ作成と言うこともありますので___基本的にはrails tutorialを元にし、所々アレンジをしていくと言う形で行っていきます。___そして、全体が出来上がってきたら他の機能なども実装いきたいと思います。
#静的なページな作成
とりあえず“`$rails 5.16 new my_app“` でRailsのバージョン番号を指定して骨組みを作成します。そして必要なgemをインストールした後は“`$rails g controller StaticPages home help“`を実行します。
このコマンドにより___controllerが作成されたと同時にルーティングとviewも作成されています。___

そしたら

“`:terminal
$ git add -A
$ git commit -m “Add a

元記事を表示

Kinx ライブラリ – Array

# Array

## はじめに

**「見た目は JavaScript、頭脳(中身)は Ruby、(安定感は AC/DC)」** でお届けしているスクリプト言語 [Kinx](https://github.com/Kray-G/kinx)。言語はライブラリが命。ということでライブラリの使い方編。

今回は Array です。

* 参考
* 最初の動機 … [スクリプト言語 KINX(ご紹介)](https://qiita.com/Kray-G/items/ca08b6fb40d15dd0ec76)
* 個別記事へのリンクは全てここに集約してあります。
* リポジトリ … [https://github.com/Kray-G/kinx](https://github.com/Kray-G/kinx)
* Pull Request 等お待ちしております。

## Array 特殊オブジェクト

Array オブジェクトに対して関数定義する例は以下の通り。例では単に map をラップしただけですが。

“`javascript

元記事を表示

Rubyのインストールでエラーになった

リモートワークで少し時間が出来たので
railsチュートリアル用にローカル環境を構築しようと思ったらrubyのインストールでハマったので備忘

`$ rbenv install 2.6.3`

上記コマンドで下記のようなエラーになった。

“`
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
configure: error: clang version 3.0 or later is required
“`

OSアップデートの影響らしい
下記コマンドを実行してxcodeをインストールしたら無事にrubyのインストールできました

“`
$ rbenv install 2.6.3
ruby-build: use openssl from homebrew
Downloading ruby-2.6.3.tar.bz2…
->

元記事を表示

【ruby】『ruby入門(メモ1)』初めてのrubyプログラム(hello dinosor)+コメント

###0.はじめに
前回、ruby on railsに超入門したが、文法など何も知らない状態でスタートしていた。
何も基礎的な事を知らないのに、webアプリが作れることはrailsが素晴らしさでもあり、
怖さでもある。
scaffoldから少しでも踏み出すために文法を学ぶつもりだ。

__そしてプログラムのどこかに恐竜の名前を出すことも心がけていく。(結構重要)__

###1.初めてのrubyプログラム
下記はprintで指定した文字列を出力するプログラム

“`ruby:ruby1-1.rb
print(“hello dinosor”)
“`

###2.実行方法

以下コマンドをプログラムのあるディレクトリを入力する。
__ruby プログラム名__

“`

c:\ruby_pg>ruby ruby1-1.rb
hello dinosor
c:\ruby_pg>
“`

###3、コメント記述法(一行)

__文字列の前に#を入力するとその行がコメントとみなされる__

“`ruby:ruby_comment.rb

#dinosor comment
print(“d

元記事を表示

【Ruby on rails】You have requested: spring = 2.0.2 The bundle currently has spring locked at 2.1.0. Try running `bundle update spring` If you are updating multiple gems in your Gemfile at once, try passing them all to `bundle update`と表示される。

#rails環境構築時エラー

環境設定時に以下コマンドを入力しました。

“`
bundle install
“`

するとエラーが発生

“`
You have requested:
spring = 2.0.2

The bundle currently has spring locked at 2.1.0.
Try running `bundle update spring`

If you are updating multiple gems in your Gemfile at once,
try passing them all to `bundle update`
“`

bundleアップデートしてくださいとのこと。

“`
bundle update
“`
bundleアップデートした後再びインストール。

“`
bundle install
“`
エラーがなくインストールできました!

元記事を表示

Ruby の開発版に右代入演算子とエンドレスメソッド定義構文が入った

[ブログ記事](http://secret-garden.hatenablog.com/entry/2020/04/10/195207)からの転載です。

Ruby の開発版に右代入演算子と実験的にエンドレスメソッド定義構文が新しく追加されました。

## 右代入演算子

* チケット:https://bugs.ruby-lang.org/issues/15921
* pull request:https://github.com/ruby/ruby/pull/3012

左辺値を右辺の変数に代入する `=>` 演算子が新しく追加されました。
これは `expression => variable` のように書くことができます。

“`ruby
# 左辺値を右辺の変数に代入する
42 => result
p result
# => 42

# メソッドチェーンの最後に代入演算子を書くことができる
(1..).lazy.select { _1 % 2 == 0 }.map { _1 * 2 } => x
p x.first(10)
# => [4, 8, 12, 16, 20, 24

元記事を表示

ユーザーをフォローする〜Railsチュートリアル第14章〜

ついに最後となりました。Railsチュートリアル14章をまとめていきます。
ここでは前章を基礎とした応用的な技術や複雑化した内容となっているため全体的にかなり難しかった印象です。

この章では他のユーザーをフォロー(及びフォロー解除)できるソーシャルな仕組みの追加とフォローしているユーザーの投稿をステータスフィードに表示する機能を追加する。

#Relationshipモデル
ユーザーをフォローする機能を実装するためにはデータモデルを構成する。
具体例として、AがBをフォローすると、これを逆にみればBがAにフォローされていることになる。AはBからみればフォロワーであり、AがBをフォローしたことになる。
Railsにおけるデフォルトの複数形の慣習に従えば、あるユーザーをフォローしているすべてのユーザーの集合はfollowersとなり、user.followersはそれらのユーザーの配列を表すこととなる。
しかしこの名前付けはあるユーザーがフォローしているユーザーの集合はこのままではfollowedsとなってしまい、英語の文法からも外れてしまう。
そこでここではfollowingという呼称

元記事を表示

【爆速デバッグ】入力不要の入力欄【Rails,haml】

# はじめに
TECH CAMPというプログラミング教室に50日ほど通った添野です。
今日はRailsのデバッグを爆速で終わらせる方法をご紹介します。

下記のような商品登録ページの**デバッグ作業(動作確認)**を想像して下さい。
スクリーンショット 2020-04-10 13.42.27.png

**うわ!めんどくさそう!**って思う方が多いと思います。

メルカリのようなフリマアプリで、商品などを登録する画面ですが、動作確認をしようとすると**いちいち情報を手入力してから「出品する」ボタンを押す**という面倒な作業を避けて通れません。

**嘘です。避けて通れます。**避けて通り方を説明します。
そのための記事です。

# 結論
下記手順です。

1.`input`タグに`,v

元記事を表示

rails歴10ヶ月の人が初めてWEBアプリを公開してみた

(Qiita初投稿です。)
資格試験の悩みを解消するwebアプリ[Qua](https://www.quaquestions.com/)を作りました。開発人数は1人、webサービスを作ったことがない初心者でした(他の言語の経験もなし)。全くの手探りという状況から公開しました。ドキュメントを残しているのでそれをもとに日付と共に振り返っていきたいと思います。

## Quaとは?
資格試験でわからないことがあった。でも誰にも質問できない。塾にも通ってない。どうしよう!という不安を解決するwebアプリです。
例: FP2級に受験資格はあるのですか?
https://www.quaquestions.com/
![QUa3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480294/93edf877-f217-30ff-0382-788f1d069061.png)

↑トップページ
正直、初めてですよ感満載のページになってしまいました。あとまだ、サンプル兼動作確認のため投稿した自分の質問しかありません(泣)。

元記事を表示

[Rails]Bootstrapの導入方法

# 開発環境
・Ruby: 2.5.7
・Rails: 5.2.4
・Vagrant: 2.2.7
・VirtualBox: 6.1
・OS: macOS Catalina

#1.gemを導入

“`rb:Gemfile
gem ‘bootstrap-sass’
gem ‘jquery-rails’
“`

“`terminal:ターミナル
$ bundle
“`

#2.「application.css」ファイルをscss形式に変更

“`terminal:ターミナル
$ mv app/assets/stylesheets/application.css app/assets/stylesheets/application.scss
“`

#3.「application.scss」ファイルを編集

“`scss:application.scss
/* 追記 */
@import “bootstrap-sprockets”;
@import “bootstrap”;
“`

#3.「application.js」ファイルを編集

“`js:application

元記事を表示

[Rails]ダイレクトメッセージ(DM)機能の実装

#目標

![ezgif.com-video-to-gif.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/579893/1a4206f8-16ea-3b3e-383f-a847c8788587.gif)

# 開発環境
・Ruby: 2.5.7
・Rails: 5.2.4
・Vagrant: 2.2.7
・VirtualBox: 6.1
・OS: macOS Catalina

# 前提

・Bootstrapを導入済み。
・ログイン機能を実装済み。

Bootstrap導入 ➡︎ https://qiita.com/matsubishi5/items/b117c95f4dd71340cc80
ログイン機能 ➡︎ https://qiita.com/matsubishi5/items/5bd8fdd45af955cf137d

#ダイレクトメッセージ(DM)機能を実装

### 1.モデル

“`terminal:ターミナル
$ rails g model room name:string
“`

元記事を表示

全ての約数を列挙する `Prime#each_divisor` を実装

Rubyの [**`Prime` クラス**](https://docs.ruby-lang.org/ja/latest/class/Prime.html)には、素数を判定・列挙したり**素因数分解**するメソッドが実装されている。しかし素因数分解までであり、**約数に関する操作は無い**。約数を列挙したり、その個数を数えたりしたかったので、素因数分解のメソッドを利用して追加実装してみた。

“`ruby:実装
require ‘prime’

class Prime
def each_divisor(n, &block)
pf = prime_division(n)
num = -> { pf.inject(1) { |prod, (_, exp)| prod * exp.succ } }
Enumerator.new(num) { |y| __each_divisor__(1, pf, &y.method(:<<)) } .tap { |enum| enum.each(&block) } end private def __each

元記事を表示

OTHERカテゴリの最新記事