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 dodevise_for :users
root to: ‘foods#index’
resources :foods do
collection do #ここから下3行です!!
get :search
end
end
resources :users, only: :showend
“`“`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 = 78if score < 90 then puts "#{score}は90より小さい" end if score <= 78 then puts "#{score}は78以下です" end if score >= 78 then
puts “#{score}は78以上です”
endif score == 78 then
puts “#{score}はぴったりです”
endif 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
endcount_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の生徒さん以外にも役立つはずです)
RubyでFizzBuzz問題
# アウトプットとしてFizzBuzz問題の記事を書く。
### 要件
– 1~任意の数までの数字を順番に表示する
– ただし、3の倍数のときはFizz、5の倍数のときはBuzz、3と5の公倍数のときはFizzBuzzと表示する。
– 任意の数はプログラム実行時に引数で渡せるようにする### コードを書く。
“`
def fizzbuzz(n)
if n % 15 == 0
puts “FizzBuzz”
elsif n % 3 == 0
puts “Fizz”
elsif n % 5 == 0
puts “Buzz”
else
puts n
end
endnum = 15
(1…num).each do |n|
puts fizzbuzz(n)
end
“`※ここで注意するべきなのが15の倍数の判定コードを先に書くこと。3の判定コードや5の判定コードを先に書くと15の倍数が来たときに一番最初のコードの処理が実行される。つまり15は3の倍数でも5の倍数でもあるのでうまくいきません。わからなければ実際に
Ruby 色々な配列のメソッドの紹介1
#配列のメソッドの調べ方
配列にはいろんなメソッドがあります。
覚えるより調べることが大切です。⚫︎pryで調べる
“`
[1] pry(main)> ls []
でメソッドを調べることができます。“`
#Rubyの色々なメソッド
よく使うものからマイナーなものまであります。
興味があるものから調べてください。⚫︎push
“`
animal = [“犬”,”猫”,”鳥”,”象”,”猿”]
animal.push “ライオン”
puts animal犬
猫
鳥
象
猿
ライオン と出力puts animalのputsをprintにすると
[“犬”, “猫”, “鳥”, “象”, “猿”, “ライオン”] と出力#補足
putsとprintの違いは改行をするかしないかの違いです。
他に似たものはpop,shift,unshiftなどがあります。“`
⚫︎size count length
“`
number = [10,20,30,40,50,true,false,nil,true,nil,false]
puts number.si
[Ruby] AtCoder 過去問 B – 1%
##はじめに
AtCoderの過去問B問題を解いてみました。
よろしくお願いします。問題は下記リンクから確認してください。
https://atcoder.jp/contests/abc165/tasks/abc165_b
##B – 1%
まず、入力受け取りをします。
今回は一つだけなのでgets.to_iでいけます。
この入力値=目標金額になるのでgoal_balanceとでもしておきます。“`ruby
goal_balance = gets.to_i
“`高橋くんはもともと100円を銀行に預けているので変数に入れておきます。
また、このあとwhile文で使う繰り返した回数を数えてくれる変数を用意して0を代入しておきます。このカウント=年数です。
“`ruby
goal_balance = gets.to_ibank_balance = 100
year = 0
“`これで使う変数の準備ができました。
あとはwhile文で処理して、yearを出力すればオッケーです。“`ruby
goal_balance = gets.to_iban
[Ruby on rails]バッチ処理で通知の定時削除 通知の未読連絡のメール作成
初めに
今回バッチ処理を実装しました。
以下はイメージ画像です。
何日で通知を削除するのがベストなのか定まってなくてすみません・・・。![スクリーンショット 2021-08-19 17.50.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1633266/f34553ab-506a-be18-37b8-df492837a416.png)
![スクリーンショット 2021-08-19 17.47.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1633266/00bf8879-33ab-d342-2dfc-cc938003e5ec.png)
バッチ処理って何?
一定期間経ったらデータを消してくれる機能だと思ってたのですが、
もっと色々なことができるんですね:point_up:
1日1回何時とか、2分起き〜とかに、あらかじめ定めた処理を行ってくれます。
今回行ったのは、1日