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

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

MacOS でのRubyの環境構築【初心者向け】

https://qiita.com/nishina555/items/63ebd4a508a09c481150

これがわかりやすかったのだが、

`rbenvにパスを通すため、シェルの設定ファイル(.bashrcや.zshrc)に以下を追加します。
`
という説明だけわかりづらかった。
ここを理解するためには、以下の前提知識が必要だ。

前提知識
✅ シェルが何かわかる
✅ bashとzshの違いがわかる
✅ 自分の使用しているシェルが何かわかっている
✅ 以下の記事を理解する

https://qiita.com/okamos/items/c97970ab34ff55ff3167

ここまでわかって初めて`rbenvにパスを通すため、シェルの設定ファイル(.bashrcや.zshrc)に以下を追加します。`の意味がわかるはずだ。

そしてホームディレクトリ直下にある隠しファイルである、 .bashrc や .zshrc という名前のファイルを編集することができるはずだ。
チェックを4つクリアして

“`
vim ~/.zshrc
“`

このコマンドを叩こう。

元記事を表示

[Rails]searchアクションの定義方法について

# はじめに
本記事では、7つのアクション以外である
`searchアクション`について記述します。

本日オリジナルアプリで実装したためアウトプットいたします。

# 結論
いきなりですが、コードを載せます。
私のオリジナルアプリは食べ物に関係したものです。

foodsをsearchするという理解でお願いします。

記述の順番としては、
ルーティング→モデル→コントローラーが良いのかなと思っています。

“`routes.rb
Rails.application.routes.draw do

devise_for :users
root to: ‘foods#index’
resources :foods do
collection do #ここから下3行です!!
get :search
end
end
resources :users, only: :show

end
“`

“`food.rb
class Food < ApplicationRecord belongs_to :user has_one_a

元記事を表示

Ruby , Ruby on Rails学習 一日目(条件分岐と繰り返し表現)

お疲れさまです!takumiです!
一日目なのは変わりませんが引き続きRubyの勉強頑張っていきましょう!!!

#IF文

〇〇の場合は□□するという条件分岐。

基本の型

“`Ruby
if 条件 then
#条件
end
“`

具体例をみてみます。
基本的にはBoolean値(true or false)を判定して出力するか、しないかを判定しています。

“`Ruby
score = 78

if score < 90 then puts "#{score}は90より小さい" end if score <= 78 then puts "#{score}は78以下です" end if score >= 78 then
puts “#{score}は78以上です”
end

if score == 78 then
puts “#{score}はぴったりです”
end

if score != 77 then
puts “#{score}は77ではない”
end
“`

また、文字を入力したらそれだけでtrue判定することも覚えておくといいかも。

元記事を表示

Ruby each文の基本的な使い方

#繰り返し処理
同じ処理を何回も繰り返すことです。

#each文とは

eachは英語でそれぞれという意味です。
例えば a= [1,2,3]なら
配列の中身を先頭から順番に処理が繰り返される。
webアプリでよく使われる処理です。
例えばTwitterのつぶやきなどを取り出してきて
ブラウザの画面に表示するときに使える。

⚫︎each構文

“`
オブジェクト.each do |変数|
実行する処理1
実行する処理2
end

“`
 この記事を引用しました。
https://www.javadrive.jp/ruby/for/index5.html

#each文の使い方

“`
scores = [10,20,30,40,50,60]

scores.each do |score|
puts score
end
“`
*puts scoreの部分はsとかにしてもokです。

“`

scores.each do |s|
puts s
end
“`

*putsは1回しかない 。eachでscoresに入ったデー

元記事を表示

Ruby技術者認定試験 Silverに合格した私の勉強方法

これまで勉強してきたRubyの力試しとして受験した「Ruby技術者認定試験 Silver」に合格したので勉強方法をまとめます。

#目次
– 前提条件
– 受験をしようと思った背景
– 勉強期間
– 勉強方法
– 試験結果と試験後の振り返り

##前提条件
– 非エンジニア・実務経験なし(当時は絶賛職探し中でした)
– プログラミングスクールで半年間、Rubyを学習
– スクールにてチーム開発、卒業後は個人開発の経験あり
– Ruby以外のバッグエンド言語は全く学習経験なし

##受験をしようと思った背景
プログラミングスクールでRubyの基礎を学び、学びのアウトプットの一つとしてRubyの資格をとることにしました。

職探しでは、主に資格より実際の個人アプリの作成などのアウトプットが重視されることはわかっていたので、この資格はどちらかというと「人に証明するため」というよりは「勉強フェーズの一区切り」として受験することにしました。

##勉強期間

申込日:2021年5月8日
↓ (50日)
受験日:2021年6月27日

申込した日から勉強を行ったので、勉強期間は約1ヵ月半です。

元記事を表示

Ruby から Google Custom Search API を叩く

# ゴール
– https://developers.google.com/custom-search/v1/overview を ruby から叩く

# まず REST API を呼ぶまで
– 事前準備
– https://webbigdata.jp/what-is-bigdata/google-custom-search-api
– プロジェクトの作成
– `https://console.cloud.google.com/home/dashboard?project=[プロジェクト名]`にアクセス出来れば OK
– 該当 API の有効化
– https://console.cloud.google.com/apis/library?project=oldnews-natural-language-api
– API キーの発行
– https://cloud.google.com/docs/authentication/api-keys?hl=ja

元記事を表示

インクリメンタルサーチ rails ajax

インクリメンタルサーチを実装する!

インクリメンタルサーチとは・・逐次検索です!

完成イメージ

あるワード「コロナ」を入れると、、そのワードがタイトル、コンテンツ内に含まれてる記事が出てきます。
さらに、「コロナ」から「コロナウイルス」にうち進めると…
さらに絞り込まれていきます。
ちなみに下に出てくる記事のタイトルは、リンクにしてるので
押したらそのまま、記事に飛べます。

これが、ベストなインクリメンタルサーチではないですが・・・
頑張って実装したのでまとめていきます:fist:

![スクリーンショット 2021-08-20 20.49.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1633266/a6f5040a-bc90-691b-a797-488f0f4a7e47.png)
![スクリーンショット 2021-08-20 20.49.58.png](https://qiita-image-store.s3.ap-northeast-1.amaz

元記事を表示

do…endと{}について

# do…endと{}について
JavaやC言語などは繰り返し処理の場合、for文を使うことが多いと思いますが、
Rubyの繰り返し処理は、eachメソッドを使うことが多いです。

## do…endの場合
配列の要素を加算する処理
eachメソッドで配列の要素を順番に取り出す作業を行い、その要素の処理はdoからendまでのブロックに記述します。

“`Ruby:do…end
numbers =「1,2,3,4」
sum = 0
numbers.each do |n|
sum += n
end 
sum #=> 10
“`

上記の場合、配列の中から要素1,2,3,4を順番に取り出して、sum += nで各要素を加算する。

##{}の場合
do…end以外に{}でもブロックを作ること出来ます。

“`Ruby:{}
numbers =「1,2,3,4」
sum = 0
numbers.each do { |n| sum += n }
sum #=> 10
“`

##まとめ
do…endと{}の使い分けは明確に決まっているわけではありません。
ただ

元記事を表示

【Java】【Ruby】配列内の偶数を数える

 とても簡単ですが、RubyとJavaで、配列内の偶数を数えるプログラムを作りました。「配列を引数として渡すにはどうしたら良いのだろう」という疑問からひとまず作ったものです。

## Ruby

“`ruby
def count_evens(nums)
count = 0
nums.each do |num|
if num.even?
count += 1
end
end
puts count
end

count_evens([2, 1, 7, 8, 2, 3, 4])
count_evens([2, 2, 6, 5, 0])
count_evens([1, 3, 11, 5])
“`

## Java

– メソッドを定義したクラス

“`java
package example;

public class CountNums {
void countEvens(int[] nums) {
int count = 0;
for(int num : nums) {
if (num % 2 == 0) {

元記事を表示

Ruby , Ruby on Rails学習 一日目(変数とメソッド)

#webアプリケーション開発、頑張るやで。

今日からデイトラで学んだことをどんどんアウトプットしていこうと思います。

フロントエンドエンジニアを目指していたのですが、正直バックエンドの知識も
ないとぶっちゃけ頭がこんがらがってわからなくなるときがあります。。。。
なので学んだことをどんどんQiitaにアップロードしていこうと思います!

#Rubyってなんぞや

今まで学習してきたHTML,CSS,JavaScriptと違ってRubyはサーバーサイド言語と
呼ばれるもの。
機能としては
・ロジックをつくるんだよー
・データを保存したり取り出したりできるんだよー

そしてこの言語は日本人よって作られたらしい。地味にすごすぎワロタ。
そしてこのRubyとRuby on Railsというものを使うと爆速でWebアプリケーションが作れるみたい。
フロントでいうところのVue.jsとかReactみたいなもんなんかね。

この便利なRailsですが、実務ベースで使用していくには生のRubyをちゃんと知らないと
だめだよということなのでしっかり基礎学習していこうと思います!!

#文字の表示

元記事を表示

Rubyにおけるインデントについて

これまでインデントについてあまり考えたことがなかったのですが、今回その機会があったので**Rubyにおけるインデント**について書いていきます。

##インデントとは?
>インデントとはコードを読みやすくするための空白。字下げをするという意味。

##インデントの種類
一般的にインデントは3種類が様々な言語でに用いられています。
>● タブインデント 
● 半角スペース2インデント
●半角スペース4インデント
※今回Rubyでは公式な規定はありませんが、例えばGo言語ではインデントはタブじゃないとそもそもコンパイルできないそうです。

#どれを使えばいいのか?➡半角スペース2文字のインデントを用いる
Rubyには正式なコーディング規約はありませんが、有志が作ったコーディング規約があります。この目的としては可読性(コードの読みやすさ)を保つためです([Ruby Assosiation](https://www.ruby.or.jp/ja/tech/development/ruby/050_coding_rule.html))。
ここで紹介されている5つではいづれも半角スペース2文字のイン

元記事を表示

mimemagicのインストール エラーと格闘した軌跡

# mimemagicをインストールしたい
ここ5時間くらいmimemagicのインストールに悩まされています。(泣)
未来の自分に向けて解決策を備忘録として残しておきたいと思います。

mimemagic との戦い

一通りgemgileやらなんやらを用意して、いざ以下のコードを書いたところ、

“`
subaru$ docker-compose run web rails new . –force –database=mysql
“`

全てはこのエラー文から始まった。

“`
An error occurred while installing mimemagic (0.3.10), and Bundler cannot continue.
Make sure that `gem install mimemagic -v ‘0.3.10’ –source ‘https://rubygems.org/’` succeeds before
bundling.
“`
gem meme
https://qiita.com/friendtree16/item

元記事を表示

railsで簡単にCRUD処理ができるようになる(コントローラー編)

## railsで簡単にCRUD処理ができるようになる(コントローラー編)

このhogeもしくはhogesを任意の名前(taskでもboardでもなんでもいい)に変えるだけで、CRUD処理実装におけるコントローラーがマルっと解決する。

hogeもしくはhogesは、userと一対多(user:hoge = 1 : N )の関係にあるものとする。

“`jsx
class HogesController < ApplicationController before_action :set_hoge, only: %i[edit update destroy index show] def index //全件表示 @hoges = Hoge.all end def show //投稿されたものの詳細を表示 @hoge = Hoge.find(params[:id]) end def new //新しくインスタンス(投稿する記事など)を作成 @hoge = Hoge.new end def cre

元記事を表示

【AWS SAM CLI】GoからRubyへの移行

# はじめに

AWS SAM CLIでランタイムにGoを使っているプロジェクトがありましたが、プロジェクトを作った人は退職してしまいました。
私含め、他のメンバーはRubyでの開発が主であり、Goの知識が薄い状態です。
そこで、GoからRubyに書き直してメンテナンスしやすくした時にやった事をまとめました。

# 環境

* SAM CLI, version 1.27.2
* ランタイム, go1.x => Ruby2.7

# 1. Rubyプロジェクトの初期化

`sam init`コマンドを使って新規のRubyプロジェクトを立ち上げました。
ディレクトリ構成は下記のようにしました。

“`text
sam_cli
|
|– sam-app-go # Goで書かれたプロジェクト(既存)
|
|– sam-app-ruby # Rubyで書かれたプロジェクト(新規)
“`

以下は対話型でruby2.7のランタイムを指定して作成している例です。

“`bash
Which template source would you like to use?
1 – A

元記事を表示

[Ruby on rails] RuboCop(リーダブルコード)②Rubocop-airbnbを導入してみた

初めに

以前の記事でrubocopを導入しましたが、
rubocop-airbnbの方が使い勝手が良かったので、そちらに変更しました。
圧倒的に設定やら何やらはこっちの方が楽です!!!

https://qiita.com/ki_87/items/1ee43808784652cd1608

Gemfile導入

前入れたrubocopとはおさらばです。

“`Gemfile
gem ‘rubocop-airbnb’

“`

bundle install します。

ファイルの作成

.rubocop.ymlと.rubocop_airbnb.ymlを作成します。
Gemfileがあるところと同じところです。

![スクリーンショット 2021-08-20 13.47.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1633266/efaf19ed-17e8-97f1-7034-0dac9a9ef692.png)

ファイルに記述

元記事を表示

【動画付き・初心者向け】コメントにはWHYを書こう 〜不要なコメントと必要なコメントの違いについて〜

## はじめに
僕は[フィヨルドブートキャンプ](https://bootcamp.fjord.jp/)(以下FBC)というプログラミングスクールでメンターをやっています。そこでよく生徒さんが書いたプログラム(課題の提出物)のコードレビューをよくやるのですが、5人に4人ぐらいの割合でコメントの書き方について同じような指摘をしています。

コメントの書き方ついては、すでにネットや書籍で同じような議論が山ほどありますが、この記事ではあらためて僕の考える「不要なコメントと必要なコメントの違い」について書いてみようと思います。

## 動画があります!
この記事は以下の動画の内容を雑にテキストとして書き起こしたものです。動画で見たいという方は、以下の動画をご覧ください。(FBCの生徒さん向けに作った動画ですが、大半の内容はFBCの生徒さん以外にも役立つはずです)