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

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

Rubyの開発環境を作る

初めましての方は初めまして。百瀬碧音と書いて、ももせあおいと言います。
今回の記事はRubyの開発環境を整えるための方法の備忘録です。

# Xcodeのインストール

まず、Macで開発を行えるようにするために必要なXcodeをインストールする。

“`zsh
$ clang
# $ xcode-select –install と一緒
# Macを開発で使えるようにするためにXcodeが必要
“`

# Homebrew のインストール

Homebrewという、Macのパッケージマネージャーをインストールする。

“`zsh
$ /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”
“`

最新のコマンドは [Homebrew公式ページ](https://brew.sh/index_ja) を確認する。このページのインストールの真下にあるコマンドをコピーして実行すると、Homebrewをインストールできる。

# 必要なパッケージをイン

元記事を表示

100日後くらいに個人開発するぞ!day054

## 今日はinitializeメソッドを学んでみた!

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2632394/ad863e16-4090-5b40-0586-beb59f443f31.png)

## 今日の学び
### インスタンス生成時に値を代入する方法
* initializeメソッド
* インスタンスを生成した直後に処理を実行することができる
* 「クラス名.new」でインスタンスを生成した直後に自動で呼び出される
* 使用例
* `class Menu`
* ` attr_accessor :name`
* ` attr_accessor :price`
* ` def initialize`
* ` self.name = “寿司”`
* ` self.price = 1000`
* ` puts “#{self.name

元記事を表示

RailsでActive Hashを使ってカテゴリを作る

RailsでActive Hashを使ってカテゴリを作る方法を紹介します。

こちらの記事
https://qiita.com/satoka_com/items/183d22541c3a54e0d878
を参考にしました。

最初にGemfileに、
“`
gem ‘active_hash’
“`
を記載して、
“`
$ bundle install
“`
します。

自分の場合だとrecruitmentモデル(求人ページ)にカテゴリを持たせたいと考えているので、
そこにActive Hashを使ってカテゴリを作っていきます。

最初にJobategoryモデルを作成します。
“`Ruby
#job_category.rb
class Category < ActiveHash::Base self.data = [ { id: 1, name: 'サンプル' }, { id: 2, name: 'サンプル2' }, { id: 3, name: 'サンプル3' } ] include ActiveHash::Associations has_many :r

元記事を表示

【Rails】リロードをしないとJavaScript (jQuery)が動作しない

今回はスクールでも頻発している
”リロードしないとjQueryが動かない問題”について記事にしていこうと思います。
かくいう私も見事この沼にハマり、かなり悩まされました、、、

# 開発環境
Rails 6.1.4
ruby 2.6.3

# 目次
– 原因
– 対処法
– 対処法(番外編)

## 原因
私の場合、FontAwesome導入時にjQueryのコードを追記していたのですが、
なぜかそれが削除されており、jQueryが作動しないという状況でした。

## 対処法

下記のコードを追記します。

“`ruby:config/webpack/environment.js
const webpack = require(‘webpack’)
environment.plugins.prepend(
‘Provide’,
new webpack.ProvidePlugin({
$: ‘jquery/src/jquery’,
jQuery: ‘jquery/src/jquery’,
Popper: ‘popper.js’
})
)
“`

元記事を表示

もう迷わないRubyのコード自動整形のやり方!!

今日は意外と時間かかったコードを自動で整形してくれる拡張機能を入れてみたのでそちらを記事に書いていこうと思います。
調べても思ったより上手くいかなくて、手こずったためこれから導入する人の少しでも参考になれば幸いです

まずはrufoというgemをインストールします
“`
$ gem install rufo
“`
VScodeの拡張機能でrufoと検索してダウンロードします
終わり

“`
これで一括でrufoでコードを整形できる
$ rufo .
“`

“`
特定のファイルだけ走らせる時
$ rufo ファイル名(ディレクトリ名)
例: $rufo app/views/layouts/application.html.erb
“`
ちなみにrufoでのコード整形の詳細設定の一例を書いておきます
プロジェクトフォルダ直下に.rufoファイルを作成
“`.rufo
parens_in_def :yes //これでメソッドに引数を渡すときに()が自動で生成される
trailing_commas :always //これで配列の要素の後ろに必ず,がつくようになる
“`

`

元記事を表示

ローカルでRailsの環境構築

Railsチュートリアルの通りにCloud9で環境構築をしていましたが、何度やり直しても正体不明のエラーが発生し初学者の自分では解決できそうになかったので、[こちらのProgateの記事](https://prog-8.com/docs/rails-env)を見てMacのターミナルで環境構築し最初からローカルでやるようにしました。ところが、ここでもエラーが発生し、調べたところ下記の記事が検索結果のトップに出てきたのでこの通りにすると一応解決できました。

無限 Rails is not currently installed on this system. 問題の調査 – Qiita
https://qiita.com/amuyikam/items/313bc89c1de320a4257e

この記事の通りに
hash -r
を実行しました。

“`
ys@mbp ~ % /usr/bin/rails –version
Rails is not currently installed on this system. To get the latest version, simply

元記事を表示

[Ruby]配列演算子[]等をあえて通常ののインスタンスメソッドのように使う

Rubyで個人的に面白い気づきがあったので記事にします。

## []を通常のインスタンスメソッドとして使っている例を発見
先日、担当しているプロジェクトで以下のようなコードを見ました。

“`ruby:ruby
array.[](0)
“`

恥ずかしながら、一瞬、これは何をしているんだ?と戸惑ってしまいました。
[]は配列演算子として配列や文字列にドットなしでつけるのしか見たことがなかったからです。

[Array#[]](https://docs.ruby-lang.org/ja/latest/method/Array/i/=5b=5d.html)はインスタンスメソッドとして用意されているので、以下は同じ結果になります。

“`ruby:ruby
array = [1, 2, 3]

array[1] #=> 2
array.[](1) #=> 2 ([]メソッドの引数を()で指定している)
array[] 1 #=> 2 (()を省略)
“`

## どんなときに使うのか

これをどんな時に使うのか、という話ですが、例えば以下のようなかたちで`&.`を使って、[]が使

元記事を表示

【Rails】Rails 6 × Tailwind CSS v2導入 – 備忘録

# 目次
[1.はじめに](#1-はじめに)
[2.TailwindCSSの導入](#2-TailwindCSSの導入)
[3.動作確認](#3-動作確認)
[4.おわりに](#4-おわりに)
[5.参考記事](#5-参考記事)

# 1. はじめに

Railsに慣れることが目的なので、CSSでもBootstrapでもよかったのですが、
CSSだと時間がかかるし・・・
Bootstrapは現場でほぼ使うことない・・・
と思いTailwindCSSを使ってみることにしました。

Rails の練習用にプロジェクトを作成している際に、TailwindCSSの反映で少し詰まったので対処を記載します。

Railsのアプリケーションの作成が完了した「後」の手順になります。

基本的に以下の記事を参照させていただき、作業を進めました。
[Rails6にTailwindCSSを導入し、tailwind.config.jsでカスタマイズもできるようにする](https://zenn.dev/ikuma/articles/install-tailwind-in-rails6-with-webpack

元記事を表示

carrierwaveとcocoonを使った複数枚画像投稿

# 執筆中

## 概要
carrierwaveとcocoonを使った複数枚画像投稿機能。
結論から言うと、本体とは別に画像テーブルを作成し、formをcocoonで複製しないと、ハッシュ化した複数投稿はできない。(と、思う。)
いろいろな記事があるが、画像の名前をハッシュ化していなかったりとピンとくる記事がなかったのでそれらを補ったものを投稿する。

## 開発環境
・Ruby: 3.1.2
・Rails: 7.0.2
・OS: macOS Monterey

## 準備
### テーブル構成
本が1に対して、画像が多のテーブル構造。
[carrierwaveの公式サイト](https://github.com/carrierwaveuploader/carrierwave)では複数画像の時は、json形式のカラムを作り(本記事だとbook)、そこに配列形式で格納する方法が紹介されているが、この方法で実装するとファイル名のハッシュ化で詰む。(後の、画像テーブルは別で用意するにて詳述する)

“`
# images
lass CreateNoticeImages < ActiveRe

元記事を表示

【draw.io】ER図テーブルに列と行を追加する方法


図描画ツール[draw.io](https://www.draw.io/)でER図を作成中、
テーブルの列や行の追加の方法がわからなかったのでメモしておきます。

↓ここにありました。

![スクリーンショット 2022-07-11 143732.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730324/6c375dc6-32fd-40fa-b237-9dbe7f0c9075.png)

対象のテーブルを選択して、右のArrangeタブのTableエリアを操作すればできました!

元記事を表示

Webpacker::Manifest::MissingEntryError 解消法 – Rails version 6.0 環境

## 対象環境
node.js : v16.x.x
rails : v6.0.x

## 具体的なエラー前動作
“`:terminal
rails new xxx
cd xxx
rails g scaffold user
rails db:create
rails db:migrate
rails s
“`
として、
http://localhost:3000/users
にアクセスすると下記のエラーが発生

![Screen Shot 2022-07-11 at 11.58.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2646082/3bf33b38-d7f7-251e-5b27-00c41ad72a48.png)

## 対処法
### 1.railsのバージョンを6.1.xに変更する(推奨)
参考:
コマンド
Lhttps://qiita.com/seijMAN/items/ac363f6688c72f4ea186
インストール可能なバージョン参照
Lhttps://rubygems.

元記事を表示

エラー解決: NoMethodError – undefined method `own?’ for nil:NilClass:

このエラーはよく見過ぎて対応の仕方がよくわかってきましたが、改めてまとめていきたいと思います。

今回エラーが出た場所はここです。
“`
<%= render 'crud_menus', post: post if current_user.own?(post) %>
“`
このエラーはmethodのレシーバーがundefinedだよって忠告されているエラーです。
今回はownの前のcurrent_userがnilになってますよ!と言うことです。

対応方法は本当に色々とありますが、私はよくunlessを使います。
下記のようにunlessをつけると、current_userがnilでない時に<%= render 'crud_menus', post: post if current_user.own?(post) %>を実行すると言うことになります。
“`
<% unless current_user == nil then %>
<%= render 'crud_menus', post: post if current_user.own?(post) %>
<% e

元記事を表示

rollbackできないエラーの時

rollbackをしようと実装していた矢先、以下のようなエラーが出て、少しはまってしまったため、その備忘録を書かせて頂きます。
“`
ActiveRecord::UnknownMigrationVersionError:
No migration with version number 20220703020507.
“`

このエラーはどう言う時に出るかというと、下記の表で上から三行目に
[********** NO FILE **********]と書かれてるように、NO FILEがあると、うまくrollbackができなくなってしまいます。
“`
database: starbuck_services2_development

Status Migration ID Migration Name
————————————————–
up 20220702022539 Sorcery core
up 20220702115611 Add role to users

元記事を表示

Claris ConnectでEコマースの在庫連携システムを作成する

# はじめに

この記事は、Qiita Engineer Festa 2022 「**[Claris Connect を使った SaaS 連携ユースケースを紹介しよう!](https://qiita.com/official-events/eeadea1de45a11be944e)**」に参加するために作成した記事です。

在庫連携システムを作成しますが、
実運用に使用できるほど仕様を考えていないので軽い気持ちで見ていただけると幸いです
また、Claris ConnectのIDや本記事で使用する各種サービスの登録方法は省略させて頂きます

# 概要

今回は複数のECを運用する事で必要になる「在庫連携システム」をClaris Connectを使って構築します
実際に運用する事をイメージして複数システムのデータ連携からSlack・Trelloのサービス連携まで行います

# 在庫連携システムとは

実装に移る前に在庫連携システムについて説明します

まずこちらが在庫連携を使用せずに複数のECサイトを運用している図になります
商品在庫を同期していないのでそれぞれのECサイトに在庫を振り分け

元記事を表示

100日後くらいに個人開発するぞ!day053

## 今日はクラスとインスタンスの復習をしてみた!
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2632394/cdacd228-7f7c-d737-1530-18692e665420.png)

## 今日の備忘録
### クラス
* プログラムの設計図をクラス、生成されるものをインスタンスという
* インスタンスを生成するステップ
* クラス(設計図)を用意する
* クラスからインスタンスを生成する
* インスタンスに情報を追加する
* クラスは「class クラス名」で定義できる
* クラス名は必ず大文字で始める
* 「end」を書く必要がある

### インスタンス変数
* クラスのインスタンスの変数をインスタンス変数という
* 例:Menuクラスにnameというインスタンス変数を設定する場合
* `class Menu`
* ` attr_accessor :name`
*

元記事を表示

Rails エラー「Runtime Error Your version of SQLite (3.7.17) is too old. Active Record supports SQLite >= 3.8」の対処法

# 開発環境
Rails 6.1.4
ruby 2.6.3

# 目次
– エラー全文
– 対処法

## エラー全文
アプリケーション作成後、`@rails s`でアプリケーションを起動。
サイトアクセス時、に下記エラーが発生。

![rails1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730324/74534efa-3a59-2d31-5c3c-3c47a9ce501e.png)

AmazonLinux2にはsqlite3のバージョン3.7がデフォルトでインストールされており、
これがyumで利用しているらしく、削除することはできません。
しかし、Rails6を動かすにはsqlite3のバージョン3.8以上が必要なので、
バージョンが古い!とエラーが出ている、、、というわけです。

## 対処法

既存のSQLiteはそのままで、3.8以上のSQLiteを別途インストールします。
sqliteの最新バージョンは[こちら](https://www.sqlite.org/download.

元記事を表示

Rails7で画像の保存にActiveStorage使ってみよう(導入からリサイズまで)

## はじめに

Ruby on Railsには、クラウドストレージサービスへのファイルのアップロードを行う機能を提供するActive Storageがあります。

Rails5.2から登場したActive Storageですが、当初はできることが少なく、CarrierWaveを利用する方も多かったのではないでしょうか。
Rails7まででActive Storageには様々な機能が追加され、新規開発の際はActive Storageを選択することが多くなると思います。

今回はActive Storageの導入からよく使うであろう画像のリサイズの方法までをご紹介します。

ViewやControllerまわりについては説明していないので[Railsガイド](https://railsguides.jp/active_storage_overview.html)などで確認してください。

## 開発環境

[こちらの記事](https://qiita.com/croquette0212/items/7b99d9339fd773ddf20b)を参考にRails7 + MySQLの開発環境

元記事を表示

Ruby初心者向けのVSCodeでの環境構築+実行環境構築+ショートカットキー紹介

プロを目指す人のためのRuby入門に書かれているエディタの環境構築をVSCode上で行いました。
この記事を最後まで読むことで、プロを目指す人のためのRuby入門に書かれている以下の環境構築をVSCode上で行えるようになります。
また、書籍内に書かれていたのおすすめ機能に加えてVSCode上でRubyを実行する設定も行います。
これによって簡単にVSCode上でRubyの実行ができるようになります。

>1.シンタックスハイライトを設定する
2.複数行の一括コメントアウト、コメント解除
3.矩形選択・矩形編集
4.タブキーによるインデント幅の設定
5.endキーワードの自動入力、自動インデント
6.複数ファイルの同時編集、タブ表示
7.ウインドウの分割
8.ファイルツリーの表示
9.インデントの可視化
10.やる気の出るカラースキームや背景画像
11.全角スペースの可視化(2020.2.29追記)
12.Rubyの実行環境を構築する
※1-11に関しては著者Qiitaより抜粋しました。
https://qiita.com/jnchito/items/0ad568263f341977

元記事を表示

Ruby on Railsをローカルで始めようとしてつまずいたこと(Windows)

# 概要
railsを触ろうと思ってWindowsでHelloWorld的なところをやろうとしたら、エラーが出てしまったのでその対応の備忘録。

## バージョン
* ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x64-mingw32]
* Rails 7.0.3
* Windows 10 Home

## エラー内容

`Windows PowerShell`でコマンド実行。
アプリケーションを作る際にエラー。

`$ rails new rails_practice`

エラーログ
“`
create
create README.md
create Rakefile
create .ruby-version
create config.ru
create .gitignore
create .gitattributes
create Gemfile
run git init from .
C:/Rub

元記事を表示

【Rails】Rails6 + docker メール設定エラー 「Errno::EADDRNOTAVAIL (Cannot assign requested address – connect(2) for “localhost” port 1025)」

## 概要
Rails6とdocker環境でメール設定をした際に発生したエラーの備忘録です。

### 環境
– ruby 3.0.3p157 (2021-11-24 revision 3fb7d2cadc) [x86_64-linux]
– Rails 6.1.6
“`docker-compose.yml
# 中略
mailcatcher:
image: schickling/mailcatcher
ports:
– 1080:1080
– 1025:1025
“`

## エラー発生時のメール設定
“`development.rb
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = { address: ‘localhost’, port: 1025 }
config.action_mailer.raise_delivery_errors = true
“`

### エラー内容
– Railsサーバ側

元記事を表示

OTHERカテゴリの最新記事