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

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

#2.5 レイアウトの調整

#はじめに
自分の学習復習のために、アプリを一から作成する手順を記事にしてます。
今回は #2.5 のレイアウト調整になります。

#目次
1.Bootstrap,font-awesomeの導入
2.各ページのレイアウト調整

##1.Bootstrap,font-awesomeの導入
* 1.gemファイルの追加
* 2.application.jsにbootstrap,font-awesomeを呼び出す記述を書く
* 3.Bootstrap,font-awesomeをSCSSに読み込ませる(今回はSCSSを使用)

の3つを行い、Bootstrap,font-awesomeの導入をしていく。

###1.gemファイルの追加
“`:gemfile
:
:
#bootstrapを利用できるようにする
gem ‘bootstrap’, ‘~> 4.5’
gem ‘jquery-rails’
#font awesomeも使えるようにする
gem ‘font-awesome-sass’, ‘~> 5.13’
“`

###2.application.jsにbootstrap,font-

元記事を表示

#2 投稿機能

#はじめに
自分の学習復習のために、アプリを一から作成する手順を記事にしてます。
今回は #2 の投稿機能になります。
ラジオボタンやプルダウン選択のフィールドも使用して作成していきます。

#目次
1.Model作成、マイグレーションファイルの編集
2.Controller,routes,viewファイルの作成
3.controllerの中身記述
4.viewファイルの中身記述

内容としてはシンプルですが、今回viewファイルの所でプルダウン選択やラジオボタンのフィールドも使用しているので、そちらの内容も理解していきましょう。

##1. Model作成、マイグレーションファイルの編集
“`
rails g model StudentPost
“`
投稿用のStudentPostテーブルを作成します。
rails db:migrateを行えばデータベースに反映されるのですが、その前にマイグレーションファイルを編集していきます。

“`Ruby:db/migrate/~~_create_student_posts.rb
create_table :student_posts

元記事を表示

TypeProf VSCode ExtensionでRubyの静的型解析を体験する

# はじめに

こちらは社内技術勉強会用の資料として作成したものです。

Ruby 3.0 がリリースされる前に、Ruby にも型宣言の考え方がどーの、みたいな雰囲気のことをぼんやり聞いていたのですが、ぜんぜんわかっていませんでした。あちこちで引用されているかと思いますが、

https://www.ruby-lang.org/ja/news/2020/12/25/ruby-3-0-0-released/

“`
Rubyは抽象解釈を武器に、型宣言なしで静的型チェックする未来を目指します。
“`

型宣言するのではなく、むしろ型宣言はありませんでした…

わかっていなかったので、Rubyの静的型解析について勉強しておきます。

# 型情報の利用

RBSという、クラスやモジュールの型を定義するための言語が用意されました。これはRubyとは異なる言語です。

以下は [WEB+DB PRESS Vol.121](https://gihyo.jp/magazine/wdpress/archive/2021/vol121) の紙面からの引用です。

https://gihy

元記事を表示

cannot load such file — nokogiri/nokogiri (LoadError)奮闘日記

railsチュートリアルの2周目さあ頑張ろう…!と意気込んでいたのですが、
「ゼロからデプロイまで」で躓きました。

#経緯

私はこのエラー、遭遇は2回目です。(1回目は諦めました)
1回目は、railsチュートリアルを進めていく上でcloud9の容量がなくなって、一度git cloneでローカル環境に取り込んだ時です。
rails serverの時にnokogiriエラーが出ました。

私の当時の力じゃどう頑張っても解決しそうになかったので、Cloud9の容量を無料最大まで上げた環境を新たに作り、そこにgit cloneをして学習を続けました。

1周では技術が自分のものになった気がしなかったので、2周目はローカル環境で進めてみようと思い再度nokogiriエラーと戦うことになりました。

#nokogiriエラーについて

railsを勉強する上でいろんな方が遭遇しているようです。

私が遭遇したエラーは、追い切れないほどのたくさんのlogの最後に

“`
‘require’:cannot load such file — nokogiri/nokogiri (LoadErr

元記事を表示

BioRubyでgenbankファイルを取得する

今まで `BioRuby` で genbank 形式のファイルを取得するときは [`BioRuby Shell`](https://github.com/bioruby/bioruby-shell) を起動して `getent()` をしていたが、いちいち起動するのは面倒なので Ruby のコード内で取得する方法を調べたのでまとめる。

## 要約

“`ruby
require “bio”

acc = “NC_012920”
ret = Bio::NCBI::REST::EFetch.nucleotide(acc)

entry = Bio::GenBank.new(ret)

File.open(“#{entry.entry_id}.gbk”, “w”) do |f|
f.puts(ret)
end
“`

### データの取得

データは `Bio::NCBI::REST::EFetch.nucleotide` で取得する。

他のものの取得は[ここ](https://github.com/bioruby/bioruby-shell/blob/master/lib/b

元記事を表示

Ruby on railsをdockerで環境構築

railsの環境構築を初学者でもわかりやすいように説明します!
Laravelよりはシンプルで理解しやすかったです。
記事もたくさんありました。

#dockerのインストール
僕が実際に参考にした記事です
・[Macの方](https://qiita.com/zaki-lknr/items/db99909ba1eb27803456)
・[Windowsの方](https://qiita.com/zaki-lknr/items/db99909ba1eb27803456)

######インストールできたかの確認
ターミナルを開いて確認しましょう!

“`:terminal
$ docker -v

Docker version 20.10.8, build 3967b7d
“`

“`:terminal

$ docker version

Client:
Cloud integration: 1.0.17
Version: 20.10.8
API version: 1.41
Go version: go1.16.6
G

元記事を表示

Rspec VCRの使い方(stubされているかどうかの確認、動的なパラメータがある場合のcassetteのマッチング、動的にcassetteの内容を変更する)

# 概要
VCRを使ったことがなく、かなりハマってしまったので、自分用にメモ
インストール方法などは他に山ほど記事があるので、そちらを参照してください。

# 前提
– request spec
– APIのテストではなく、request specでテストしたいアクション内でAPIを呼び出しており、そのAPIをstubしたい

# stubされているかどうかの確認
他の方が書いてくださったものを拝借

spec_helper.rbに以下を記載

“`rb
VCR.configure do | c |

# ここから
[ “recordable”, “stubbed” ].each do | method |
c.after_http_request(“#{method}?”.to_sym) do | request, _response |
puts “- VCR – #{method} – [#{request.method}] #{request.parsed_uri}”
unless request.externally_stubbe

元記事を表示

ターミナル起動時に/Users/ユーザー名/.zshrc:1: command not found: rbenvと表示されるのを消しさる

ホームフォルダーの隠しファイル.zshrcを開く

 eval “$(rbenv init -)”
 export PATH=”/usr/local/opt/~

を全て消して上書き保存

私はこれで表示されなくなりました。

参考にした記事
https://teratail.com/questions/272063

元記事を表示

rails データの並び替えまとめ

orderの使い方がうろ覚えだったので忘備録

“`ruby:
User.all.order(id: “DESC”) # 最後から並べてくれます
User.all.order(:id) # 指定なしなら最初から並べてくれます
User.all.order(id: “DESC”).limit(3) #3件のみ表示します。多すぎる時に使うと良き。
“`
データを見やすくするGemを入れてない時は

“`ruby:Gemfile
gem ‘hirb’
gem ‘hirb-unicode’
“`
bundle installしやす

“`ruby:
$bundle install
“`
hirbを有効にしやす

“`ruby:
$rails c
irb(main):001:0> Hirb.enable
=> true
“`
見やすくなりましたね!mysqlで見るまでもない時にドゾー。

元記事を表示

Rubyでの繰り返し処理 injectの使い方

#繰り返し処理とは
ある条件などが満たしている間もしくはその範囲で、
繰り返したい処理がある時に使います。

例えばwhile,loop,for文などです。

#injectの使い方
injectは注入という意味です。
scoresの合計を繰り返し処理で出力させていきます。

“`rb
scores = [40,60,80,100,120]

sum=
scores.inject do |result,i|
result + i

end

puts sum

“`
scoresの合計を出します。
実行すると

“`
400
“`
になります。
処理の流れとしては、40+ 60で100になって100+80で180になってと
このような流れを繰り返します。

#処理の流れを理解するには
デバックでbinding.pryを挟みながらやると繰り返し処理の流れが把握できます。
resultとiを入力しながらcontinueで処理を進めていくとわかりやすいかと思います。

https://qiita.com/Hashimoto-Noriaki/items/df700dc8

元記事を表示

Ruby eachを1行で書きたい、pluckを使いたい

・eachを一行で書きたい

“`
Areas.each {|area| puts area}
“`

“`
@shops = Shops.where(closed: false).pluck(:area_id).uniq.sort

“`

・pluckの例

“`
<% areas.each do |area| %> <%# 県 %>
<% if @shops.include?(area.id) %>
<%= link_to "#{area.prefecture}", area_path(area.id), class: "dropdown-item" %>
<% else %>
<%= link_to "#{area.prefecture}", area_path(area.id), class: "dropdown-item disabled" %>
<% end %>
<% end %>

“`

元記事を表示

1周目 railsチュートリアル第8章

#目次
[1.前回](#1-前回)
[2.概要](#2-概要)
[3.内容](#2-内容)
[4.用語のまとめ](#3-用語のまとめ)
[5.感想](#4-感想)
[6.おわりに](#5-おわりに)

#1. 前回
前章を貼り付ける

#2. 概要
今章の概要を記載

#3. 内容

## 基本的なログイン機構
7章では新規ユーザー登録。本章ではログイン・ログアウト機能。
認証システム(Authentification System)を使う。
ログイン済みユーザー(current user)を扱うことを認可モデル(Authorizzation Model)

### セッション
HTTPはステートレス(Stateless)なプロトコル。
cookieはユーザーのブラウザに保存される小さなテキストデータ。
この章ではsessionメソッドを使い、一時セッションを作成する。
次章ではcookiesメソッドを使う。

セッションをRESTfulなりソースとしてモデリングできると、
ログインページではnewで新しいセッションを出力。
ログインするとcreateでセッションを実際に作成して保存。

元記事を表示

ターミナルとは何か!

#①.結論!

ターミナルは、PCに命令をすることができるツールです!

環境構築を実行するには[コマンドライン]というツールが必要となります!

Macにデフォルトでインストールされているコマンドラインがターミナルです!

#②.コマンドライン

コマンドライン (または コマンドラインインタフェース:CLI )とは、コンピュータに対してキーボードからコマンドという文字を打ち込んで操作を行うツールです!

#③.GUI(Graphical User Interface)

コマンドラインとは対照的に、グラフィックを用いて操作を行う仕組みを グラフィカルユーザインタフェース(GUI) といいます!

例えば、「マウスでファイルをダブルクリックして開く」という操作など、普段PCで行う操作のほとんどはGUIで行なっていることが多いようです!

GUI = グラフィックを使用して、コンピューターの操作を行う方法!直感的に操作できる!

例、マウスでアイコンをクリックして操作できる!

CLI = キーボードを使用してコンピューターの操作を行う方法!コンピューター側の反応も文字によって出力され

元記事を表示

Rubyでソートする方法

# Sortメソッドについてまとめます
Rubyを学習中にソートする機会があったので、備忘録として投稿します。

# ソートとは?
特定のルールに従ってデータを並べること。

## たとえば?
たとえば

– 数字を大きい(小さい)順に並べる
– 名前を五十音順に並べる
– Qiitaの記事を古い(新しい)順に並べる

などがあります。
学生時代の「背の順」や「出席番号順」といった懐かしいものもありますね。

# sortメソッド
配列の内容をソートするメソッド。
[Array#sort](https://docs.ruby-lang.org/ja/latest/method/Array/i/sort.html)のドキュメントによるとによると

>ブロックとともに呼び出された時には、要素同士の比較をブロックを用いて行います。ブロックに2つの要素を引数として与えて評価し、その結果で比較します。ブロックは <=> 演算子と同様に整数を返すことが期待されています。つまり、ブロックは第1引数が大きいなら正の整数、両者が等しいなら0、そして第1引数の方が小さいなら負の整数を返さなければいけません

元記事を表示

M1 Macでpod installでバスエラーをRossettaなしで回避

CocoaPodsをアップデートしたら`pod install`
`/Library/Ruby/Gems/2.6.0/gems/ffi-1.15.4/lib/ffi/library.rb:275: [BUG] Bus Error`
とかでクラッシュするようになり。
調べるとRossetta使って回避!とかしてる~~残念な~~人達が多かったので、いや、ないわーと。

[Segmentation fault on M1 macOS Big Sur #864](https://github.com/ffi/ffi/issues/864)

`sudo gem install ffi — –enable-libffi-alloc`
で回避しました

終わり。

元記事を表示

VsCodeで@も含めて選択できるようにしたい。

#今回の目標
VsCodeで@も含めて選択できるようにしたい

#手順
vscode画面にて
①左上のファイル
②ユーザー設定
③赤丸をクリック
![b.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/539538/4288b640-a505-cdc3-8674-717614a835b3.png)

④設定setting.jsonに追記

“[ruby]”: {
“editor.wordSeparators”: “`~!$#%^&*()-=+[{]}\\|;:’\”,.<>/?”
},

おわり

元記事を表示

Rails5技術者認定ベーシック試験に落ちてきた!

 rails5ベーシック試験普通に落ちました。。やったこととか、この箇所がテストに出てきたなとか覚えている限りでメモします。
結果21/40 = 51%くらい? 
 合格まで、あと7問足りませんでした。

 ちなみにrails5の試験って模擬試験とか問題集なくて、仕方なくrails4ブロンズの模擬試験回してたんですけど、こちらで5回連続900点台とかとってもダメダメでした。
 rails4技術者認定ブロンズ模擬試験サイト:https://diver.diveintocode.jp/dive_into_exam

 テスト内容としては、これ分かる! というような基本的な部分も割と出ています。
 多分そういうところで得点を稼いでいます。
 分かったか怪しいところとしては

 ・actionやmodelやjobの先祖のどこが何を継承しているのか。
  (::Base付くんだっけ? とか正解はこちらhttps://railsguides.jp/upgrading_ruby_on_rails.html#rails-4-2%E3%81%8B%E3%82%89rails-5-0%E3%81%B8%[

元記事を表示

RubyもRailsもSQLも知らんC++erですがいきなり戦いを挑んでみた

## はじめに

これまでC++、JavaScirpt、C#、Rustなどなどいろいろな言語を触ってきましたが、Rubyはほとんど触る機会がありませんでした。
またデータベースも`SELECT`文というのがあるくらいの知識しか持っていませんでした。

ところでいろいろありお仕事で以下の新しい要素~~しかない~~に満ち溢れている領域への挑戦をすることになりました。

– Ruby
– Rails
– Active Record
– ActionView
– etc
– Rspec
– Factory Girl
– MySQL

無事にRailsチョットワカルになれたと思うのでそこで得た知見をまとめてみようかと思います。

## 環境構築

環境構築のはまりポイントもあったのですが職場の手順書が改善されてしまったので(いいことだけど)、書くモチベがないので割愛します。

## haml入門

“`haml
– content_for :main_pane do
= render ‘new’, :setting => @foo_setting
= r

元記事を表示

予約可能と予約不可で色分けをする

[1.はじめに](#1-はじめに)
[2.予約画面のイメージ](#2-予約画面のイメージ)
[3.実装](#3-実装)
[4.コード](#4-コード)
[5.おわりに](#5-おわりに)

#1. はじめに
予約可能と予約不可で処理を分けたいと考えましたが、思った通りに行かなかったのと、検索しても記事が少なかったのでまとめます。
前提として、sheetの座席はマスターデータとしてDBに保存してあります。
予約テーブル(Reservations)と、座席テーブル(Sheet)が関連づけられています
予約テーブルは座席テーブルにidをsheet_idとして保持します。

|Reservations| Sheet |
|:———–|————:|
| sheet_id | id |
|    ・ | row |
|    ・ |column |

#2. 予約画面のイメージ
予約できる場合はオレンジ、予約不可の場合は色を暗くして視覚的にわかりやすくしています。
今回は映画館がモデ

元記事を表示

railsでAjaxが上手く連動してくれない時の対処法の1つ

#railsとAjaxが上手く連動してくれない時の確認
現在railsでアプリケーションを作成していて非同期通信を導入しようとしていました。
ですが、何が原因なのか上手く動作する時としない時があり原因不明だったのですが、なんとか解決に導いてもらえたので整理しておくために記録します。

“`ruby:jsファイル
function post (){
const submit = document.getElementById(“submit”);
submit.addEventListener(“click”, () => {
const form = document.getElementById(“form”);
const formData = new FormData(form);
const XHR = new XMLHttpRequest();
XHR.open(“POST”, “/posts”, true);
XHR.responseType = “json”;
XHR.send(formData);
});
}

元記事を表示

OTHERカテゴリの最新記事