Rails関連のことを調べてみた2023年03月07日

Rails関連のことを調べてみた2023年03月07日

private method `hogehoge’ called for のエラーで大混乱したお話

# 概要
最近GASとJavaScriptをお勉強中の @Keichan_15 です:v:

Railsの開発を行う際にとあるエラーに遭遇したのですが、参考記事があまり見当たらず解決に時間が掛かったので、備忘録も兼ねてまとめておこうと思います。
意外と解決方法はシンプルでした…:cry:

# 伝えたいこと
– **Classの外** でそのメソッド定義していない?
– def 式がクラス定義の **外** (トップレベル)にあれば **private**
– def 式がクラス定義の **内** にあれば **public**

早速見ていきましょう!

# 発生しているエラー
![2023-03-07 (2).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2798073/c9a039e5-e0e7-5623-d1ab-f4a761fbd884.jpeg)

“private method ‘hoge’ called for ~~“ のエラーが出ています。
特にモデル側(今回であれば `

元記事を表示

(Rails)クラス継承のメリット、デメリット

# class継承とは何か?

継承はあるクラスの機能を引き継いで、新しいクラスを作ることです。

例としてタクシーとバスを作成するとして考えてみます。
それぞれのクラスでは「残りの燃料」や「走行距離」といった属性(プロパティ)を持ち、
「走る」や「ガソリンを入れる」などの操作は(メソッド)は共通しています。

具体的に話すと新しく車クラスを作成し、その中に共通する属性や操作を書きます。
そしてタクシーとバスのクラスは車クラスの機能を引き継いで作成されます。

継承元のクラスを「スーパークラス」と言い、継承先のクラスを「サブクラス」と言います。

# 継承のメリット

継承が用意されていない場合、新しくブレーキの機能を追加したいとなったとき、
乗り物に関する個別のクラスに属性や操作を追加しなければならない!

こうするとコードが長くなってしまい乗り物のクラス全体に機能を追加したり、
修正したりするときに一つ一つを修正しなければならず大変になる。
そこで車のような基盤となるクラスを用意することで新たな乗り物を最小限の手間で作成することができる!

# 継承のデメリット

RubyやJa

元記事を表示

Ruby on Rails チュートリアル 第4章

# **組み込みヘルパー**

元記事を表示

deviseを導入しよう1

deviseのかんたん導入手順

# devise導入ステップ

>1.Gemfileでインストール
>2.deviseをインストール
>3.ユーザーテーブルを作成

です!

# deviseとは
ユーザー機能を実装したいときに、1から実装しようとするとセキュリティ面等で実装がかなり、難しくなります。

そこで簡単にユーザー機能を簡単に作ることができるのが「devise」というGemです。

# 1.Gemfileでインストール
Gemfileの1番下に

“`Gemfile
gem ‘devise’
“`

Gemfileをインストールします
ターミナルで

“`
$ bundle install
“`
を実行して下さい!

# deviseをインストール
deviseをインストールします
ターミナルで下記コマンド入力

“`
$ rails g devise:install
“`

下記内容が表示されればインストール成功です

“`
Running via Spring preloader in process 7494
create c

元記事を表示

DockerとRuby on Railsを使った基本的なトラブルシューティング

Ruby on Railsに再度親しむために、Open Food Networkでボランティアを始めたところです。彼らはオープンソースで、非営利の、食品店のためのオンラインマーケットプレイスです。独立した農家をハブや流通業者と結びつけるためのソフトウェアを提供しており、そのすべてがRuby on Railsで動いています。

多くのウェブアプリがそうであるように、彼らは物事を簡単にするためにDockerをセットアップしています。Dockerは、特定のソフトウェアパッケージがインストールされていなかったり、間違ったバージョンがインストールされていたりして、他の開発作業を悩ませる「私のコンピュータで動作する」という問題を解消するのに役立ちます。

Dockerは、OSの特定のバージョンを実行するシステムイメージをコンピュータに「ドッキング」させるソフトウェアの一部で、よく知られていません。Dockerは、ビルド時に特定のパッケージをインストールするようにカスタマイズすることができます。その上でRSpecを使ったテストを行ったり、サーバーを立ち上げて開発版のサイトを操作して、自分のコードが期

元記事を表示

Ruby on Rails アプリ作成 序盤に出たエラー

# はじめに
新しくアプリケーションを立ち上げて
“`ruby
rails db:create
“`
を実行したときにでたエラーを解決したため、忘れないうちに記録したいと思い投稿します。

# どんなエラーが出たのか
“`ruby:実行していたこと①
rails _6.0.0_ new xxx -d mysql
“`

“`ruby:実行していたこと②
rails db:create
“`

そうすると、以下のようなエラーが出ました。
“`:ターミナル
/Users/admin/.rbenv/versions/2.6.5/lib/ruby/2.6.0/net/protocol.rb:66: warning: already initialized constant Net::ProtocRetryError
/Users/admin/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/net-protocol-0.2.1/lib/net/protocol.rb:68: warning: previous definition of

元記事を表示

いいね機能(非同期通信)

1. 序論
Rails初心者が詰まりやすい非同期通信を用いたいいね機能の追加方法をまとめました。

2. 環境
Rails 6.1.7
deviceによるuserモデルと本を投稿するbookモデルが存在するサンプルアプリを使用

3. モデル作成
以下のコマンドでfavoritesモデルを作成

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3157044/295dee8f-03e8-7676-158d-8b9abf48894a.png)

今回、favoritesモデルはuserモデルとbookモデルの中間テーブルなので、マイグレーションファイルに外部キーを記述し、rails db:migrateを行う。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3157044/600e3d0f-b30e-b078-00ac-f15319174d7b.png)

各モデルにhas_manyとbe

元記事を表示

【超簡単】Railsでレシピ検索アプリ作ってみた(楽天API)

# 今回やりたいこと
料理の検索をしたい
検索したいワードを入力するとワードに合った料理を提案してくれる

完成形こんな感じ

# 楽天APIに登録
https://webservice.rakuten.co.jp/

楽天会員としてログイン
登録がまだなら楽天会員に登録しときましょう

右上の「アプリID発行」をクリック
![Screenshot 2023-03-06 10.21.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2586059/bdb9a3a8-ed5f-c222-2b56-569ecc0d2947.png)
アプリを作成できたらIDとか色々もらえます
“`.env
RAKUTEN_APPLICATION_ID = “*

元記事を表示

「Rails7にBootstrap5を導入した」件

# 前書き
Rails7にBootstrap5を入れようと思い、公式ドキュメントの手順を踏んでみたものの各所でエラーを吐いてしまった。

エラーを回避した方法を含め、Bootstrap5の導入手順をここにまとめたい。
なお、既存のアプリに対して導入する手順なので、新規アプリ作成時に導入する方法は記載しない。

# 環境
WSL2
Ubuntu
Docker
Rails7
Ruby 3.1.3

# 実行手順
基本的には[公式ドキュメントに記載の手順](https://rubygems.org/gems/bootstrap)に従うものとする。

“`:Gemfile
gem ‘bootstrap’, ‘~> 5.2’
gem ‘mini_racer’
“`

railsサーバー起動時にExecJS::RuntimeUnavailableというエラーが出る。これの対応としてmini_racerをGemfileに追記する。

[参考記事]
* [ExecJS::RuntimeUnavailableの解決方法](https://qiita.com/Kawanji01/i

元記事を表示

sidekiq-scheduler cronの実行時間指定方法

– Sidekiq schedulerで「Cron」を使って実行時間を指定します。
## config/sidekiq_scheduler.yml
“`
:schedule:
hello_world:
cron: ‘*/30 * * * *’ # every 30 minutes
class: ‘HelloWorld’
queue: single
description: ‘Test’
“`

– 基準はパラメタ5つを使って実行時間を指定します。
`
Minutes Hours Days Months DayOfWeek
`
例:
![スクリーンショット 2023-03-03 15.23.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2989503/3bb34ef5-daa8-b8d1-b211-c23abb7965d2.png)

“`
‘1 * * * *’ # execute at 1 minute of every hour

元記事を表示

投稿出来ない不具合について紹介(備忘録)!

## 今回の目的

こんばんは!昨日に続く投稿となりました!

今回は実装方法の紹介というよりも、
備忘録の意味合いが大きいので、「こんなことも起きるんだな〜」と思っていただければ幸いです!

## エラー内容の概要

・ポートフォリオの作成中に起きた現象は以下の通りですので、箇条書きで記載します。

-投稿画面で何も反応がない。
-投稿画面をリロードすると反応がある。

## エラー内容の詳細

投稿画面に遷移した後に、フォームへの入力は出来る。
しかしながら、`submitボタン`を押しても何も起こらない。

ターミナル上で確認を行うものの、DBへの保存もできてない様子。
リロードを行い再度記入したところ、`submitボタン`で投稿が可能になりました。

## エラーの原因について

■結論
form_with(今回はnested_form_for)をdiv要素を越えて記載をしてしまっていました…

“`ruby:review_form.html.erb

<%= nested_form_for review, local

元記事を表示

【個人開発】生体管理ポートフォリオ 命どぅ宝

はじめに

こんにちは沖縄県出身の@names_mumuと申します。
エンジニアという職業さえ知らなかった私が2022年11月より4ヶ月間
プログラミングスクールに通い製作した生体管理アプリについて記録しておこうと思います。

【アプリURL】
https://sheltered-gorge-63657.herokuapp.com/

【GitHub URL】
https://github.com/mutsumisadara/OG_app

アプリ開発の経緯

私自身犬を飼っているのですが、何匹も飼えるわけではなく、動物保護団体様へ支援を行っております。
そんな中、たまたまSNSを見ているとその動物保護団体さんが日々の生体管理を
一匹一匹のケージに紙を貼り付け管理をしているところを目の当たりにしました。
「こんなにたくさんいるのに、この管理方法では大変ではないか?」
と思ったのがきっかけで、生体管理情報共有アプリケーションを作ろう!と思いました。

アプリ名前の由来

命どぅ宝(ぬちどぅたから)は沖縄の方言で、
「命は何よりも大切であり、尊く、一番大事な宝である。命を粗末にしては

元記事を表示

RailsでDDDってどうなの?そもそもRailsってどんなフレームワーク?

Railsを学習していて発生した素朴な疑問、 **RailsでDDDってどうなの?そもそもRailsってどんなフレームワーク?** に対して自分なりに納得できるよう調査したので記録しておきます。

## RailsでDDDってどうなの?

### DDDって何?
聞いたこともない、という方は[こちら](https://www.ogis-ri.co.jp/otc/hiroba/technical/DDDEssence/chap1.html)
一般に[クリーンアーキテクチャ](https://qiita.com/nrslib/items/a5f902c4defc83bd46b8)とかに相性がいいとされるこのDDD。完全に思想通りと言わずとも(そもそも完全に思想を理解していない)、エンティティを中心に開発するとDBの都合とロジック側の都合とがいい感じに折衝されて、アサインされたプロジェクトに採用されているとちょっと嬉しい設計思想。
完全に理解したい人は[エリック・エヴァンスのドメイン駆動設計](https://www.amazon.co.jp/%E3%82%A8%E3%83%AA%E3%83

元記事を表示

【超簡単】RailsでAPI叩いてレシピ検索サイト作ってみた

# 今回のやりたいこと
https://www.edamam.com/ で料理APIを登録し、railsアプリ内でレシピの検索をできるようにする
# Edamamの登録
https://www.edamam.com/

[このURL](https://www.edamam.com/)にアクセスする。
基本情報を入力し、sign upする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2586059/ab9cae8a-b644-e37f-1606-4472831c6d67.png)

右上のAccountsボタンからGo to Dashboardをクリックする。
ApplicationsのCreate a new applicationをクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2586059/9dbedd44-2789-e0ef-1891-9d827f3bd814.p

元記事を表示

Cloud9からRenderへデプロイ

# はじめに
初投稿になります。
プログラミングについて学び始めてから約8ヶ月。超初心者。まだまだわからないことが多いので間違っている箇所があったらそっと教えてください?
ほとんどが引用になっています。

# 環境
– windows11
– cloud9
– rails 6.1.7
– ruby3.1.2
– postgreSQL 9.2.24
– sqlite2 0.5.4
– sqlite3 (1.6.1-x86_64-linux)

# 経緯
PFとしてCloud9のrailsでショッピングサイトのアプリケーションを作成し、AWSを利用したデプロイ完了。
デプロイの自動化を試みたときにIPアドレスで閲覧できていたサイトが見れない状態になっていたため、四苦八苦しながら原因を探るも解決できず。
転職活動が開始できないという問題のため、スピード重視でAWSからRenderでのデプロイを行うことにしました。

# 結果的に
こちらの記事:[Renderによるデプロイ](https://qiita.com/Naaa0/items/8e2ad76e40e3a638ddfc)
この通りにした

元記事を表示

(Rails)データ型「float型とdouble型」

# float型とdouble型の概要

# 変数と変数の型
変数はプログラミングにおける値を入れておく箱です。
処理の途中で値を入れたり逆に取り出したりできます。
変数の方とはこの箱にはどのような種類を入れてもいいですよといった決まりになります。

# float型

プログラミングの話で出てくる変数の種類の一つであり
その変数用の箱には(有効桁数の大きくない)少数を一ついれていいよという決まりのことになります。
日本語では「単精度浮動小数点型」と表現される場合もあります。

# double型

float型の仲間に「double型(倍精度浮動小数点)」という形があります
float型とdouble型の違いは箱の大きさにあります。

具体的にはfloatの変数には「0.000000002」はゼロが多すぎて(小数点以下が多い)変数の箱に収まりません。
変数の箱が大きいのでdouble型であれば収まります。

これがfloat型とdouble型の違いです。
double型の方が有効桁数の大きい(小数点以下が多い)数字を扱えます。

ですが箱が大きいということはそれだけ場所をとり

元記事を表示

データ型について(rails)

# データ型に関して
データベースのデータ型はいろいろな種類があってわかりにくいです。
どういったときにどのデータ型を使えばいいのかわからなくなるので言語化できるようまとめて行きます。

# データ型の概要

rubyではデータとデータの処理の集まりをオブジェクトと言います。
「プログラミングを行うと気に便利な単位」がデータ型と呼ばれるものです。

プログラミングでは各データがどのようなデータを示しているか区別するためにデータ型というものがあります。
ネコは名前(文字列)なのか数字(数値)なのかです。

# データ型種類一覧

<

検索機能の実装について(Rails)

## 今回の目的

昨日に引き続きこんにちは!
今回はRailsでの「検索機能」についてまとめさせていただきます。

今回の内容はポートフォリオでの実装などにも向いているかと思いますので、
是非ご確認いただければと思います!

## 目次
・開発環境と前提条件
・実装について
-ルーティング定義
-検索フォーム作成
-Searchesコントローラーの作成
-検索方法の定義(モデル内)
-検索結果の一覧表示

## 開発環境と前提条件

■開発環境
・ruby: 2.6.3
・rails: 5.2.4.5
・OS: macOS Catalina ver10.15.7
・Cloud9

■前提条件
・Userモデル
・Bookモデル
・device導入済
・Bootstrap導入済

## 実装について

・ルーティング定義
→ まずはルーティングの定義から進めていきます。

“`routes.rb
get “search” => “searches#search”
“`
このコードを記載したことにより、
検索ボタンを押したとき、
Searchesコントローラーのsearchアクション

【Rails】Chart.jsで1週間の投稿数をグラフ表示する

# 完成形
過去1週間で投稿された本をグラフにしてみます!
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3231090/28629dc9-ced5-b78b-4a8f-85264c115c22.png)

# chart.jsをインストール
### 環境
* Ruby 3.1.2
* Rails 6.1.7
* yarn 1.22.19

### 手順
“`
$ yarn add chart.js
“`
Yarnでchart.jsをインストールします。

“`app/javascript/packs/application.js
import Chart from “chart.js/auto”;
global.Chart = Chart;
“`
application.jsに記述を追加し、インポートします。

## グラフを表示
ここからは実際にグラフを表示していきます!

### 1週間に投稿された本の数を取得
今回はユーザーの詳細画面でグラフを表示するので、showアクシ

silckスライドショー

# 【Rails】slick使ってスライドショーに挑戦してみたので作り方を簡単に書いていきます
ホームページのトップページでよく見るスライドショーを作ってみました!

JavaScriptとjQueryを使います!

# ①【jQuery】を導入します

Gemfileに下記を記述
“`php:Gemfile
gem ‘jquery-rails’
“`

ターミナルに戻ってインストール
“`php
1. bundle install
“`

# jQueryとは?
#### JavaScriptで出来ることをコンパクトにまとめたものです。
例えば、今回のスライドショーやクリックしたら画像が変わったりJavaScriptだと
書くのに時間がかかりますが、jQueryを使えば簡単に記述できてしまいます:clap_tone1:

——

# ②htmlへ記述

application.html.erbへ下記の3種類を記述します。

“`php:view/layouts/application.html.erb

.
.

  • HTMLの要素
    データ型 概要
    integer 整数型(4バイト)
    bigit 整数型(8バイト)