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

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

本番環境でBootstrapが反映されない時に解決した方法

## デプロイはできたが…
本番環境にデプロイすることはできたが、Bootstrapだけが反映されてない、、という不具合をなんとか解消できた話です。

## 原因
恐らく、Bootstrapの最新版を使っていたための不具合でした。

## なぜ最新版だと不具合が生じるの??
色々なものが日々アップデートされていますが、それらは全ての環境下で挙動を確認されているか、というとそうではないからです。
そのため、最新版を使っていればいい、というものではなく常にその時の安定版というものがありますので安定版を使うようにしましょう。

## 公式ドキュメントには…

公式ドキュメントには、Bootstrap5.2.0(最新)が安定版となりました!というブログが掲載されています。
これで動くはずだ!と思ってしまいますが、先輩エンジニアさんの方々の意見をしっかり聞くようにしましょう😭

https://blog.getbootstrap.com/

![スクリーンショット 2022-08-11 11.10.16.png](https://qiita-image-store.s3.ap-northeast

元記事を表示

Rails クラスメソッドとscopeっていったい何が違うのよ!

# はじめに
駆け出しエンジニアの私にとって実務のコードはメソッドだらけでなかなか読み進めることが難しいです。
メソッドに出くわしたら、検索して書かれている場所を特定してアルゴリズムを理解して、また次の行へ・・・
そんな中次のようなメソッドがあり、コードの内で検索をかけるのですが、なぜかメソッドが見つからないことがありました。
~~~ ruby
モデル名.hoge
~~~
メソッドといえば
~~~ ruby
def hoge

end
~~~
この形が一般的です。
ですが、探してもどこにも見つかりません。
ただmodelにこんな記述がありました。
~~~ ruby
scope :hoge, -> { where.not(category_id: 3)}
~~~

どういうことだ・・・。このhogeは実はメソッドではいのか・・・?
scopeってなんだ・・・と思い、調べてみることにしました。
その内容を備忘録として残したいと思います。
もしも、おかしな点や間違いがありましたら、教えていただけると幸いです!

# 環境(自分のPC)
Ruby 2.7.1
Rails 6.0.5

#

元記事を表示

AWS cloud9でRubyのバージョンのアップデートをする

## Cloud9のRubyのバージョンを変更したい!!
自作アプリを作成していて、デプロイ時にRubyのバージョンが古いままだったので、本番環境のみでRubyのバージョンの変更をおこなっていましたが、開発環境でもバージョンを揃えたいなと思って色々苦戦したので忘備録として記事にしました。

## Cloud9のデフォルト
私がCloud9を使い始めてからのデフォルトのRubyバージョンは2.6.3でした。
これを、最新の安定バージョン3.1.2(2022/8/10現在)にしたい!!
ちなみに、最新の安定バージョンは以下で確認できます。
https://www.ruby-lang.org/ja/downloads/
![スクリーンショット 2022-08-10 22.27.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2759696/89e3537d-c31c-787c-2ac6-227c3be70652.png)

## それでは、やっていこう!!
#### rvmの最新の安定バージョンをインスト

元記事を表示

Ruby技術者認定試験 Silver 合格しましたが。

## 概要
Ruby技術者認定試験 Silver version 2.1 に合格しました。
ですが得点は80点で勉強時間をしっかり取った割にはぎりぎりでした。
これから試験を受ける方の役に立てばと思います。
## 過去問周回を特に頑張った人向け
過去問を解くのは点数が上がっていくのが楽しいですし
勉強方法としてシンプルなので楽ですが程々にした方が良いと思います。
点数を取るためだけの勉強になりがちなので、
間違えた部分に関してはテキストなりwebの記事を読む。
また公式リファレンスのメソッド一覧等を眺めて見た事が無いメソッドの
ページを読んで引数の確認などをした方が良いと思います。

それでも自分は過去問(Rex、ミニツク、対策問題集、模擬問題)
に時間を費やし過ぎてしまいました。
その上で解けずに失点したかも知れない問題を似た様な形式で残しておきます。
## web過去問で対策したが解けなかった問題

“`Ruby
# 次のコードを実行するとどうなりますか
p “6B12”.to_i
“`
– 12
– 6
– 61112
– 612
– エラーが発生する

数字以外が入っている

元記事を表示

【個人開発】楽しみながら滑舌を鍛えることができるWebアプリ『早口言葉選手権』をリリースしました⚾🏏

![hayakuchi-championship-toppage.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2381497/cefba2f6-d185-5122-7c6a-eebd68b5a378.png)

若い方からお年寄りまで、スコアを競いながら楽しく滑舌を改善できる、早口言葉採点サービスをリリースしました。

▼サービスURL
https://hayakuchi-championship.com/
▼GitHub
https://github.com/tomo-kn/hayakuchi-championship
▼Twitterアカウント

※使用しているAPIの都合上、このサービスは現在、**PCまたはAndroid端末のChromeブラウザ**でのみプレイ可能です。

# はじめに
こんにちは![駆け出しエンジニアのとも](https://twitter.com/tomokn5)と申します。
突然ですが、皆さんは自身の滑舌や話し方に

元記事を表示

ENVの意味がわからなかったけど調べたら簡単だった。

はじめに

githubで有名なgemのコードを読んでみると、全く知らない文字列が羅列していて、そもそもどんな風にコードを読めばいいかわからないと言うことを何度も経験しました。
プログラミングを始めたばかりは(まだまだ初学者ですが。。)わからないものが羅列していると何が何やら訳が分からなくなり、単純に恐くて手をつけたくないと思ってしまっていました。
でも一つ一つの単語を調べて理解が少しできると怖さが激減するんだな、ということを経験の中で知ることができました。

少しでも疑問に感じたことはそのままにせず調べて、備忘録としてアウトプットをしていこうと思います。

ENV.fetch(“~”)の文字列が怖かった

現在ポートフォリオを作成している中で、twitter apiを使ってtwitterのアカウントでログインができる機能を実装しています。

その機能のためにネットの記事を参考にしていた際に、下記のコードが出てきました。
~~~
ENV.fetch(“TWITTER_KEY”)
~~~
いつもコードを書くときは大抵小文字なのに、ENVは大文字と言うだけで少し怖っ、、と思ってしま

元記事を表示

Rails7でSvelteを使えるようにする

Rails7でSvelteを使う方法ってないのかな?と探していたんですが、全く見つからなかったので自分で試行錯誤した記録をここに記します。

やったことの軌跡がわかるようにPRを作ってありまして、基本このコミットの通りにやれば使えるようになるはず。

https://github.com/yuki-noguchi/svelte-rails7/pull/1

# 手順

## rails newする
このとき、`-J`や`-j`オプションをつけて、javascript関連のファイルは生成されないようにしたほうが良いかもです。
後述しますが、`vite_rails`を使用するので、生成されるjavascript関連のファイルが邪魔になるかもです。
自分は`–minimal`をつけちゃいました。

## ‘vite_rails’を追加する

Gemfileに以下を追記して、

“`
gem ‘vite_rails’
“`

bundle install実行。

“`shell
bundle install
“`

さらに、初期化コマンドを実行。

“`
bundle exec v

元記事を表示

【Rails】ActionMailerでお問合せフォームを作ろう!!

# はじめに
お問合せフォームをActionMailerを使って実装する方法を調べ、実装した。

**完成予想図**
以下のようなものを作る。
①お問合せフォームの作成
![スクリーンショット 2022-08-09 22.46.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2684787/b96d1935-4119-26e2-bcca-33416e39bbc6.png)
②確認画面の作成
![スクリーンショット 2022-08-09 22.46.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2684787/8b1bb9c0-bf79-b113-c6af-a7f32dfa9f32.png)
③送信後、ホームへリダイレクト
![スクリーンショット 2022-08-09 22.43.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0

元記事を表示

[Rails6系] auth0を使用したSNSログイン機能をHerokuにデプロイするまで

### 前提
記事を書いている私は現役のエンジニアではなくエンジニアを目指して学習中の者です。
よって、気をつけてはいますが記述内容には誤った内容が含まれている危険性があります。
その為この記事は参考程度に読んで頂き詳しい内容は公式の記述を参考にすることをおすすめします。

### この記事で実装すること
auth0とdeviseを使用してRailsアプリで簡単にSNSログインができる機能を実装し、Herokuにデプロイするまでの手順を説明します。
deviseを使用してユーザーの新規作成ができるRailsアプリがあることを前提に進めていきます。

### 使用技術
Ruby 3.1.2
Rails 6.1.6
Heroku
Deviseでユーザー新規作成機能実装済み

### 実装手順
auth0への登録からRailsアプリへの連携までについても説明しますがこの辺については以下のQiita記事や公式のチュートリアルがとても分かりやすいので参考にして下さい。
[公式のチュートリアル](https://auth0.com/docs/quickstart/webapp/rails/int

元記事を表示

ruby on rails を AWS Cloud9で実施 5 QandAサイト作成 バリデーション追加まで

https://qiita.com/TaichiEndoh/items/35294ff656499d9bbf8d

https://qiita.com/TaichiEndoh/items/9c19319df04a279403a3

https://qiita.com/TaichiEndoh/items/057d35eff8cadbd434ba

https://qiita.com/TaichiEndoh/items/522e956d569e5bbd7b8d

# 前回の続きでQandAサイト作成します

環境 AWS Cloud9
environment type EC2
instance type t2.micro
platform ubuntu server 18.04 LTS

## 質問の編集機能を実装

まずはviewの表示を変更します

app/views/questions/edit.html.erb
を作成します

“`app/views/questions/edit.html.erb

Edit

<%= form_with model: @qu

元記事を表示

【ポートフォリオ作成2日目】githubのissue活用とrspecのセットアップ

# 概要
– githubのissue機能を使ってタスク管理をする。
– rspec(Ruby用のテストフレームワーク)を使ってTDD(テスト駆動開発)を行うための準備をする。
# githubでタスク管理
– [GitHubのissueを活用した個人アプリの開発手順を書いてみた](https://qiita.com/tkmd35/items/9612c03dc60b1c516969)
– [Githubにissueのテンプレートを作成する方法](https://note.com/koushikagawa/n/n0dcc592d3045)
# rspecのセットアップ
– [rspecをgemでインストール](https://zenn.dev/fu_ga/books/ff025eaf9eb387/viewer/f2c0c9)
# 参考
– [使えるRSpec入門・その1「RSpecの基本的な構文や便利な機能を理解する」](https://qiita.com/jnchito/items/42193d066bd61c740612)
– [Everyday Rails – RSpecによるR

元記事を表示

【Railsチュートリアル】しょっぱなからバージョンを間違えた話

どうもこんにちは
先日Railsチュートリアルを始めたtaku3ukatです。

Railsチュートリアルではver.6.0.4を使い、以下コマンドで指定します。

“`
rails _6.0.4_ new (任意の環境名)
“`
ただrailsのバージョン確認をすると6.0.5.1と表示されるではありませんか…

#### とりあえずRails 6.0.5.1を消してみる。
“`ruby:削除コマンド
gem uninstall railties -v ‘6.0.5.1’
“`

“`ruby:削除結果(ターミナル)
You have requested to uninstall the gem:
railties-6.0.5.1

rails-6.0.5.1 depends on railties (= 6.0.5.1)
If you remove this gem, these dependencies will not be met.
Continue with Uninstall? [yN] y
Successfully uninstalled

元記事を表示

【ポートフォリオ作成1日目】開発環境とrailsアプリケーション作成

# 概要
Webエンジニア転職用のポートフォリオ作成の過程を記録する。
[Ruby on Rails チュートリアル](https://railstutorial.jp/)を1週した後のレベル感。
– PC:M1 MacBook Pro
– エディタ:Visual Studio Code
– ターミナル:iTerm
# rubyのインストール
– [homebrewでanyenvをインストール](https://brew.sh/index_ja)
– [anyenvでrbenvをインストール](https://github.com/anyenv/anyenv)
– [rbenvでrubyをインストール](https://github.com/rbenv/rbenv)
– [(参考)PATHを通すとは? (Mac OS X)](https://qiita.com/soarflat/items/09be6ab9cd91d366bf71)
# railsアプリケーションの作成
– [gemでrailsをインストール](https://guides.rubyonrails.org/gettin

元記事を表示

【Rails】joinした先のテーブルで昇順降順のソートもしたい

## bad

joinした先のテーブルでソートする場合

“`ruby
User.eager_load(:posts)
.order(‘posts.title’)
“`

という例をよくみるが、これだと文字列を使う&昇順・降順のソートができない。

## better

“`merge“`を使うことでjoinした先のテーブルで昇順・降順のソートができる。

“`ruby
User.eager_load(:posts)
.merge(Post.order(title: :asc))
“`

## 参考

https://railsdoc.com/page/model_order

https://qiita.com/shshimamo/items/bd8150598cf2a157b980

元記事を表示

記事作成テンプレート

“`
# 概要
– [リンクテキスト](URL)
– [リンクテキスト](URL)
# 1
– [リンクテキスト](URL)
– [リンクテキスト](URL)
# 2
– [リンクテキスト](URL)
– [リンクテキスト](URL)
# 参考
– [リンクテキスト](URL)
– [リンクテキスト](URL)
“`

元記事を表示

docker-compose buildで You must use Bundler 2 or greater with this lockfile.エラーが出る

docker-compose buildをしたときにエラーが発生したため備忘録として残しておきます。
ググってみてもよくある解決策で解決しなかった人のためになれば幸いです。

“`ruby:Dockerfile
FROM ruby:2.5.1

RUN apt-get update -qq && \
apt-get install -y build-essential \
nodejs\
mariadb-server\
mariadb-client

WORKDIR /portfolio

COPY Gemfile /portfolio//Gemfile
COPY Gemfile.lock /portfolio//Gemfile.lock

RUN gem install bundler
RUN bundle install

RUN mkdir -p tmp/sockets
“`

この状態でdocker-compose buidを実行すると以下のエラーが発生。

“`
=> ERROR [7/8] RUN bundle install

元記事を表示

ruby on rails を AWS Cloud9で実施 4 QandAサイト作成 バリデーション追加まで

https://qiita.com/TaichiEndoh/items/35294ff656499d9bbf8d

https://qiita.com/TaichiEndoh/items/9c19319df04a279403a3

https://qiita.com/TaichiEndoh/items/057d35eff8cadbd434ba

具体的な説明は上記を確認願います

環境 AWS Cloud9
environment type EC2
instance type t2.micro
platform ubuntu server 18.04 LTS

# QandAサイト作成

## 新規プロジェクト作成

今回もバージョンを指定して立ち上げたいので

“`
rails new qanda _7.0.0_
“`
qanda プロジェクトが確認できます

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2629668/50ae80c6-6006-a0ff-fb68-59c8

元記事を表示

Rails6 rakutenAPI 公式documentを見ながら実装

## 初めに
今回この記事では、簡単にgemを用いてruby on railsでrakutenAPIを叩き、データを取得する方法を解説していこうと思います。
rakutenAPIの記事はかなり溢れているのですが、APIkeyを扱うのに直接initilizerに貼り付けたりや、公式のリンクが期限切れになっているものが多かったので書かせていただきました。

### 環境
– ruby
– 3.1.2(rbenv) <- 2.7以上であればOK - rails - 6.1.6.1 <- 6系であれば同じ ## 実装手順 - APIkey取得 rakuten developersにアクセス [こちら](https://webservice.rakuten.co.jp/)にアクセス 右上のログインからrakutenの会員情報を使ってログインする。(通常の楽天アカウントでok!) ログインできたら、右上の+new appをクリック ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.c

元記事を表示

速度改善のためRailsコードをGoで書き直して、FFIを使ってみた

railsのコードをgolangに書き直したら、10倍早くなりました
===================================

ffiでgoを呼び出すようにすると早くなるという記事を見たので、

実際に使用してみたら、本当に10倍ほど早くなりました。

## ディレクトリ構成
今回はrailsなのでlib配下にffiディレクトリを用意して、その中にソースコードをおきました。

+ /app
+ /models
+ test.rb
+ /lib
+ /ffi
+ sample.rb
+ .directory-list.md
+ /src
+ sample.go
+ /model
+ data.go
+ /bin
+ sample.so

## 事前準備

ffiのgemを入れておく
“`
gem install ffi
“`

go.mod ファイル作

元記事を表示

Active Recordについて

# Active Recordとは
簡潔に言うと、SQLをRubyに翻訳したもの。
MVCのM(モデル)がデータベースのデータを扱う際、本来であればSQL文でクエリを発行するが、RailsにはActive Recordのお陰で、Rubyでデータベースを操作することができる。
また、SQLではDBシステムによって互換性があるが、Active Recordでは、DBシステムの種類に関わらず、同じ記法が使えるのもメリットの一つ。

# CRUD処理でよく使うメソッド
自身が現在CRUD処理の実装を復習しているので、Create(作成)、Read(参照)、Update(更新)、Delete(削除)の流れでよく使うメソッドをまとめていきます。

# Create(生成)でよく使うメソッド
“`ruby
@user = User.new(name: “山田”, age: 22)
# userモデルのインスタンスの作成 DBには保存されない

@user.save
# 上記のnewで作成したインスタンスをDBに保存

@user.create(name: “山田”, age: 22)
# インスタ

元記事を表示

OTHERカテゴリの最新記事