Rails関連のことを調べてみた2022年04月06日

Rails関連のことを調べてみた2022年04月06日

Rails バッチ処理のエラー 「uninitialized constant Batch」

### バッチ処理を試していたときのエラー 「uninitialized constant Batch」 ###

色々調べると、「spring」というものが原因かも…

“`terminal
$spring status #springの状態を確かめる
Spring is running: #springが動いている状態

$spring stop #springを止める
Spring stopped.
“`

これで無事に動くようになりました!

↓参考にしました ※springの説明

https://pleiades.io/help/ruby/spring.html

元記事を表示

【Rails】Cannot render console from ! の対処法【Docker】

## はじめに
 本記事は、プログラミング初学者が学習を進めていて疑問に思った点について調べた結果を備忘録も兼ねてまとめたものです。
 そのため、記事の内容に誤りが含まれている可能性があります。ご容赦ください。
 間違いを見つけた方は、お手数ですが、ご指摘いただけますと幸いです。

## `Cannot render console from !` の対処法
### 状況
DockerのRails環境で開発をしていたところ、以下のようにログに`Cannot render console from 172.19.0.1! Allowed networks: 127.0.0.0/127.255.255.255, ::1`と出力されました。

“`:ターミナル
Started GET “/food_enquetes/new” for 172.19.0.1 at 2022-04-02 11:12:06 +0900
Cannot render console from 172.19.0.1! Allowed networks: 127.0.0.0/127.255.255.255

元記事を表示

Ruby

こんにちは!初めまして!現在都内大学3年生になります、重村 倫音と申します。
今回は私が大学2年生の秋学期のうち3ヶ月間で習得したruby言語について簡単に初心者さんにもrubyが何なのかという説明記事を書いてみましたのでぜひ読んでみてください!

Rubyというのは、数多くあるうちのプログラミング言語の一種です。主に多くの人に知られているウェブサイト、twitterやcookpadと言ったウェブサービスはrubyを通して作られています。数多く存在するプログラミング言語の中でも、rubyは利用者数がかなり多いです。その人気というのも、

-シンプル
-起動の速さ

という二つの観点が主に挙げられます。

最初にシンプルという観点でプログラミング初心者さんでも簡単に自分のウェブページが作れてしまうところなんです!私自身、プログラミングのプの字も知らずにrubyの言語習得に挑んでみたのですが、ruby on railsというコマンドを打つだけで大枠を自動生成できる機能があるフレームワークにより、本来とても複雑になっている作業が自分でコードの中に数回コマンドを入力するだけで自身の作りたいウェ

元記事を表示

【Rails】To avoid mistakes, drop_table is only reversible if given options or a block (can be empty).エラーの対処法

# やりたいこと
“`# rails db:migrate:down VERSION=20220404233925“`
で指定したマイグレーションファイルをdownさせたい
→最終的にはマイグレーションファイルを削除したい

# エラー内容
“`
# rails db:migrate:down VERSION=20220404233925
== 20220404233925 Masters: reverting ==========================================
rails aborted!
StandardError: An error has occurred, all later migrations canceled:

To avoid mistakes, drop_table is only reversible if given options or a block (can be empty).

(省略)
“`

# 調査
https://prograshi.com/framework/rails/rollback_d

元記事を表示

Railsでテーブルの削除

mastersテーブルを削除してみる。
テーブルを削除するためのマイグレーションファイルを作成する。

**マイグレーションファイル作成**
“`
$ rails g migration masters
“`

**マイグレーションファイル編集**

“`
class Masters < ActiveRecord::Migration[6.0] def change drop_table :masters end end ``` ``` $ rails db:migrate ``` でテーブルの削除ができます。 参考:https://qiita.com/kanuu/items/a9223712ee0ff8d19d56 https://k-koh.hatenablog.com/entry/2020/08/18/103826 開発環境 mac OS バージョン11.6 エディタ VScode

元記事を表示

良いコードとは

# 今回のアウトプットの目的
良いコードとはどのようなものか?
良いコードを書くにはどうすればよいか?
WEBアプリケーション開発をする上でとても重要だと感じたので、
改めて整理したいと思います。

# 良いコードとは
**結論:他人が見てわかりやすく意味のわかるコードが一番良いコードだと思います**

具体的にどのようなことを意識すれば良いコードになるのか纏めてみたいと思います。
①わかりやすいコメントを書く、and 無駄なコメントはしない。
②変数名やメソッド名は誰が見てもわかりやすい名前にする。
③インデントをつけてしっかりと揃える。
④ネストしすぎない。
⑤直接数字を記述するのではなく変数を利用する。

**またDRYの原則も重要だと思います**
DRY(Don’t Repeat Yourself)とは?
=「同じ情報を繰り返し定義しない」という考え方
ダメな例
“`not_dry.rb
a = 100 * 1.1
b = 200 * 1.1
c = 300 * 1.1
“`
良い例
“`dry.rb
tax = 1.1
a = 100 * tax
b = 200 * t

元記事を表示

EC2+RDSでrailsの環境構築

# はじめに
EC2上にrails環境を構築する手順を備忘録として残しておきます。
DBはRDS(MySQL)を使用

# 前提
EC2を作成し、ログイン済
 ※参考 [EC2にログインする](https://qiita.com/koyama_0122/items/8470522ec23513b749f4)
RDS(MySQL)作成済

# バージョン
ruby 2.7.0
rails 7.0.2
MySQL 8.0.28
bundler 2.1.2

# 手順

### パッケージの最新化
“`
$ sudo yum update -y
“`

### 必要なパッケージのインストール
“`
$ sudo yum -y install git make gcc-c++ patch libyaml-devel libffi-devel libicu-devel zlib-devel readline-devel libxml2-devel libxslt-devel ImageMagick ImageMagick-devel openssl-devel libcurl libcu

元記事を表示

オブジェクト指向とは

オブジェクト指向について整理したいと思ったのでアウトプットします。

# オブジェクト指向とは?
A.「ある役割を持ったモノ」ごとにクラス(プログラム全体の設計図)を分割し、モノとモノとの関係性を定義していくことでシステムを作り上げようとするシステム構成の考え方のこと。

# そもそもオブジェクトとは何なのか?
(わかりやすい記事があったので自分なりに解説)
A.ざっくりでいうと「モノ」
プログラミング視点で考えてみる。
例えばケータイでいうと、
**オブジェクト:ケータイ**
**クラス:スマートフォン**
**インスタンス:iPhoneやAndroid**
こんな感じで考えるとわかりやすいと思った。

# オブジェクト指向のメリット
①効率よくプログラムを設計・開発できる
例、サイト制作などで色違いのボタンを5つ作るとします。
オブジェクト指向を使用しない場合は5つ全てにプログラムを実装しなければならない。
しかしオブジェクト指向を使用すれば1つのボタンの「モノ」として作成し設定してしまえば、
色を変えたり、文字を変えたりするだけで済む。

②不具合の原因を特定しやすくなる
オブジ

元記事を表示

【Rails】カラム追加したいんだけど

# カラムを追加するには
## 先に結論
カラムを追加するには以下のコマンドを実行します。
“`bash
$ rails generate migration Addカラム名Toクラス名 カラム名:データ型
$ rails db:migrate
“`

## 例
クラス名**PostImages**に、**user_id**というカラム(データ型は**integer**)を作るのを忘れていたので、追加したい。
“`bash
$ rails generate migration AddUser_idToPostImages user_id:integer
“`
このコマンドを実行すると、db/migrateの下に、

**(作成日時)_add_user_id_to_post_images.rb**

というファイルができます。`(作成日時)_add_{カラム名}_{クラス名}`

“`bash
$ rails db:migrate
“`
最後にこのコマンドを実行して、カラムを追加できました。

元記事を表示

Railsで複数のレコードを一つの塊として管理してみた

# はじめに
フロントにNuxt.js、バックエンドにRailsを使用してサービスを作っているのですが、データ量が多くなり一個ずつデータを送るのに時間がかかってしまったので配列でまとめてRailsに送って処理をしてもらおうと思ったのですが躓いたので記事にします。
# 目次

1. [JSから送るデータ](#Chapter1)
1. [Railsでの実際の処理](#Chapter2)
1. [参考文献](#reference)



# JSから送るデータ
今回のケースではJSから60または250個のデータをバックエンド側に送る必要がありました。
実際のデータは以下のような感じです。
“`js
[
  {“id”:7,”name”:””,”color”:”#2196F3″,”start”:1649115900000,”end”:1649116800000,”timed”:true,”long_time”:true,”post_id”:null,”long_term_id

元記事を表示

webサーバーにNginxを組み入れる【Docker環境】

# はじめに

以前に、railsとvueのアプリ構成でdocker環境を構築した。

https://qiita.com/Shuhei_Nakada/items/148ce4c7c5bd4d11bcf0

しかし、Railsの開発用サーバーをpuma単独で動かしていたので、
役割分担して構成を変更した。

* webサーバー: nginx  
* applicationサーバー: puma

作業内容を備忘録として残す。

# アプリ構成イメージ

![スクリーンショット 2022-04-05 5.58.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1380401/2fbdff58-d8e8-5900-0018-372fc4b56eb8.png)

# 使用技術

* Rails: 6.0.4.4
* nginx: 1.21.6

# 前提

* dockerでrailsの開発環境を構築済み

# nginxの初期設定を理解する

実装前にnginxのデフォルト設定がどう動作し

元記事を表示

【Rails】Rails7.0でバリデーションのエラーメッセージが表示されない時の解決法

## はじめに
 本記事は、プログラミング初学者が学習を進めていて疑問に思った点について調べた結果を備忘録も兼ねてまとめたものです。
 そのため、記事の内容に誤りが含まれている可能性があります。ご容赦ください。
 間違いを見つけた方は、お手数ですが、ご指摘いただけますと幸いです。

## Rails7.0でバリデーションのエラーメッセージが表示されない時の解決法
### 状況
– Ruby 3.1.1
– Rails 7.0.2.3

上記の環境でフォームにバリデーションを設定した際にエラーメッセージが表示されませんでした。

![スクリーンショット 2022-04-05 3.38.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342443/9b44385d-8128-bad3-945c-2def0209ff33.png)

以下のような記述をしていました。

“`enquetes_controller.rb
:
:

def create
@enquete = Enquete.n

元記事を表示

Dockerとは 開発環境やファイルについて解説

# はじめに
Dockerの開発環境とはどのようなものか、Dockerでの環境構築の際に作成するファイルについてまとめました。
*この記事は環境構築のやり方を解説した記事ではないため、この記事を参考にして環境構築した場合の動作の保証は一切しません。
# Dockerの開発環境
Dockerのソフトウェアをインストールすると、Moby LinuxというLinuxの軽量な仮想マシンが裏で作成されます。
そして、DockerでRubyの実行環境を立ち上げると、Moby Linux上にコンテナという仮想環境が作成されます(RubyのコンテナはDockser HubというサイトにあるファイルをDLして作成される)。
コンテナのもとになるファイルをまとめたものをイメージと呼びます。Rubyのイメージには、RubyそのもののプログラムやRubyに関するライブラリが含まれています。また、Linuxとして動作するために最低限必要なファイルも含まれています。このコンテナにPC上のRails用のフォルダをマウントして開発を行う。これによって動作確認が行えるわけです。
![image.png](https:/

元記事を表示

icu4cがアップデートされ、rbenvが起動しなくなった時の対処

## エラー内容
ある時、何気なく`rails s`として、railsサーバーを起動した際に以下のようなエラーが発生しました。

“`
Library not loaded: /opt/homebrew/opt/icu4c/lib/libicudata.69.dylib
“`

## 原因
どうやら`icu4c`のバージョンがbrewをいじっている間に勝手に上がってしまい、エラーになったようです。
実際、rbenvが見ているバージョンが`69`なのに対し、`70`となっていました。

“`
$ brew info icu4c
icu4c: stable 70.1 (bottled) [keg-only]
“`

実際`/opt/homebrew/opt/icu4c/lib`の中身を見てみると、

“`
$ ls /opt/homebrew/opt/icu4c/lib
libicui18n.70.dylib … ←バージョンが70になっている。
“`

## 対処
参考文献の[icu4c がバージョンアップされたせいでphpが動作しなくなったときの解決策](https:

元記事を表示

Vuetifyでアイコンモジュールエラーを解決した流れ

#言語
HTML/CSS/JavaScript
Ruby 2.6.3

#フレームワーク
Vue 2.6.12
Vuetify
Rails 6.1.3.2

#Uncaught Error: Cannot find module ‘@mdi/font/css/materialdesignicons.css’
上記エラーがブラウザコンソールで表示されました。

私はカレンダーアプリを作っていて、Vuetifyのカレンダー関連が表示されなくりました。

エラーを訳してみるとVuetifyで使っているアイコン(Material Design Icons)のモジュールが読み込めていない模様。

#私が試した解決策(あくまでも一例として)

私の場合yarnを使用していたので、yarnで再度インストールをしました。ターミナルでインストールコマンドを実行。

~~~~~
$ yarn add @mdi/font
~~~~~

インストール完了し、Railsサーバーを起動すると表示が元通りになっていました。

正直、この流れがで解決したのか分かりませんが、アウトプットのため残すことしました。

元記事を表示

rails form_with とは

# 結論

ユーザーがデータベースに情報を送信するための記入欄を

“`html.erb

<%= form_with model: @モデルクラスのインスタンス, url: "/hoge", method: :post, local:true do |f|%>
# 記入欄をここに設けるよ
#ユーザーが入力した情報が、すでにテーブルにないか確認し、存在していなければcreateアクション、存在していればupdateアクションに自動でツーティングする
“`

form:形、方式、記入用紙
with:〜と共に

# ちなみに

`form_with`はrails5.1から追加されたヘルパーメソッド。
ではそれ以前に使われていた似たような機能のヘルパーメソッドは何か。

# form_with 誕生以前に使われていたヘルパーメソッドとは
`form_tag`:ユーザーが入力したデータを保存する必要がない時
`form_for`:データを保存する必要がある時

この書き換えが面倒だということで`form_with`が生まれたらしい。

多分この内容は間違っていると思います。いつか修正します

元記事を表示

RESTとは

## RESTとは

– RESTとはアプリを作る時の考え方のこと!
「ネットワーク上に置かれたデータ(リソース)に対して表示、作成、更新、削除などの操作を行う」という考え方のこと!

“`
Representational : 代表的なもの
State : ある状態
Transfer : 転送、伝達
“`

この考え方に基づいて作られたアプリをRESTフルという。
このRESTフルなアプリ作ることで、結果的に何度も同じことを書かずに済み、開発や保守がより簡単になる

## QどうやってRESTフルなアプリなアプリを作るのか。

ルーティング(routing)

ルーティング(routing)とはURLとアクションを結びつけるもの

URL
URLとはインターネット上に存在するデータを場所を示すもの。身の回りのもので例えると住所と似ている。
“`
Uniform :ユニフォーム、画一的、同じ
Resource :資源、資料、仕様
Locator :位置情報、所在地
“`

元記事を表示

久々にアプリをローカルサーバーで立ち上げようとしたらPG::ConnectionBad (FATAL: role “postgres” does not exist)

久々にアプリをローカルサーバーで立ち上げようとしたら、`PG::ConnectionBad (FATAL: role “postgres” does not exist):`になりました。

postgresなんてroleはないぞと。
database.yml(下記参照)に定義しているDBのusernameを見て、そんなのがpostgresにないぞと言っているのかな?

“`yml:config/database.yml
default: &default
adapter: postgresql
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
timeout: 5000
encoding: unicode
username: postgres
password:
host: localhost
“`

postgresのユーザー(ロール?)を見てみる。

“`
$ psql postgres
psql (13.6)
Type “help” for help.

postgres=# \du

元記事を表示

Railsのコーディング規約を作る際に参考にしたもの

# 初めに
Rails/Rubyのコーディング規約やコーディングルールを整備した時に参考にしたもの、使ったものなどをまとめました。

# コーディング規約
独自の規約を作るよりは、一般的なコーディング規約を参考にしましょう。
– Ruby
– [Rubyアソシエーション: コーディング規約](https://www.ruby.or.jp/ja/tech/development/ruby/050_coding_rule.html)
– Rails
– [The Rails Style Guide](https://github.com/rubocop/rails-style-guide/blob/master/README.adoc) / [日本語訳](https://github.com/satour/rails-style-guide/blob/master/README-jaJA.md)
– Rspec
– [Better Specs. Testing Guidelines for Developers.](https://www.betterspecs.o

元記事を表示

Railsの認証ソリューション deviseを使おう

# 初めに
ちょっと前の記事でOpenID Connectを書いたは良いものの、そもそもdevise導入しなきゃな…
ということでdeviseの導入をやっていきます。ただ、OpenID Connectやるだけだったらdevise入れなくても大丈夫です。

# deviseとは
Railsで最もメジャーな認証系のgemです。ログイン機能やパスワード変更など簡単に行えます。

– [heartcombo/devise: Flexible authentication solution for Rails with Warden.](https://github.com/heartcombo/devise)

# 環境
– OS: Windows11 Pro 64bit
– Version: 21H2
– OS build: 22000.493
– WSL2: Ubuntu 20.04.4 LTS
– Ruby: 3.1.1p18
– Rails: 7.0.2.2

# deviseの導入
公式の[Getting started](https://gith

元記事を表示

OTHERカテゴリの最新記事