Rails関連のことを調べてみた2020年08月09日

Rails関連のことを調べてみた2020年08月09日

Rails c Rollbackエラー原因を探る

### はじめに
開発初期段階で、usersテーブルのレコードを作成したくてrails consoleを使用。しかし、Rollbackのエラーが出てしまい保存ができない。その上、Rollbackの原因も明記されていない。これでは原因を探すのが手探りになってしまう。ということで、原因を楽に探す方法はないものかとググった結果ありました!なので、その方法の備忘録として書き記します。

###方法
やり方はとてもシンプル!createメソッドの後ろに!をつけるだけ!

元記事を表示

Railsでのカラムの追加

#カラムの追加

新しいカラムの追加(基本)
$rails g migration (行う処理+テーブル名)(追加したいカラムとデータ型など)
“`$rails g migration AddColumnToUsers  name:string age:integer
“`

新しいカラムにインデックスを追加
“`$rails g migration AddColumnToUsers name:string:index
“`

カラムの削除
“`$rails g migration RemoveNameFromUsers name:string
“`

テーブルの作成と同時にカラムの作成
“`$rails g migration CreateUsers name:string age:integer
“`

元記事を表示

[Rails][React]Module not found: Error: Can’t resolve ‘../bundles/HelloWorld/components/HelloWorld’ 解決法

# 起こったこと

既存のRails プロジェクトに`React on Rails` を入れる。

`rails generate react_on_rails:install`
を実行するも

どうやら Webpackerのbuild が通らない。

“`
ERROR in ./app/javascript/packs/hello-world-bundle.js
Module not found: Error: Can’t resolve ‘../bundles/HelloWorld/components/HelloWorld’ in ‘/home/vagrant/dev/rails-proj/app/javascript/packs’
@ ./app/javascript/packs/hello-world-bundle.js 2:0-69 5:14-24

“`

# 解決法

どうやら別途、以下コマンドで設定ファイル生成が必要だったよう。

“`
$ bin/rails webpacker:install:react
Copying babel.conf

元記事を表示

【Rails】Mongoidでembeds_manyの子要素の数を条件付き取得する

## 概要
以前に[【Rails】Mongoidでembeds_manyの子要素の数を取得する](https://qiita.com/someone7140/items/55c750301764b6d2608a)の記事で、MongoDBにて配列要素の項目数を取得する方法を記載しました。今回は配列の項目数を取得するときに条件付きで取得する方法を書きます。

## サンプル例題
前回の記事とほぼ同じですが、今回はCommentクラスに日付項目(created_at)を追加し、日付の条件で絞るような例題にします。

“`article.rb
class Article
include Mongoid::Document
field :_id, type: String
field :title, type: String
field :contents, type: String
embeds_many :comments
end
“`

“`comment.rb
class Comment
include Mongoid::Document
field :

元記事を表示

[Rails]ActionDispatch::Cookies::CookieOverflow 解決法

# 起こったこと

Rails で 突然出るエラー。

`ActionDispatch::Cookies::CookieOverflow`

主な原因としては
session 変数に多くのデータを保持する場合、

flash など view 関連のhelper で Objectやtextなど多くの文字列
を渡している場合、
に出るよう。

(CookieStore: session 情報を全てsecret_key_baseで暗号化し、クライアント側のCookie に保持。)

https://qiita.com/shota_matsukawa_ga/items/a21c5cf49a1de6c9561a

“` :example.rb
flash[:success] = User.inspect # こんな原因
“`

# 解決法

flash などhelper に渡すデータを減らす。(session に入れているため)

また、
session storeを変更するなど。

# 参考

https://stackoverflow.com/questions/94

元記事を表示

[Heroku]Cloudinary環境においてCarrierwaveで画像をアップロード

#プログラミングの勉強日記
2020年8月9日 Progate Lv.226
[前回の記事](https://qiita.com/mzmz__02/items/e653cebf095a0aa9cf7c)に引き続きHerokuを扱う。
前回までにRailsアプリケーションをHeroku上で公開することができた。

#目標
 今回はすでにローカルでCarrierWaveを用いて画像の投稿ができるので、それをHeroku上でもできるようにする。

 現在、Cloudinary環境においてCarrierwaveで画像をアップロードしようとすると以下のエラーが出てしまう。

「We’re sorry, but something went wrong.
If you are the application owner check the los for more information.」
0808-5.PNGページネーション機能の実装

## バージョン
・ruby 2.5.7
・Rails 5.2.4.3

## ページネーション機能を使って1ページにつき10件だけ表示させたい
イメージはこんな感じ
pagination_result

## まずgemをインストール
ページネーション機能の実装には、gemの「kaminari」を使います。
まず、gemfileでkaminariを記述する。
Gemfileに追記できたら、ターミナルでbundle installを実行して、kaminariをインストールします。

## さらに以下のコマンドを実行
kaminariの設定ファイルを作成の為、下記を実行します。このファイル内にある数字を動かせれば1ページにつき、何件表示出来るか設定出来ます。
スクリーンショット 202</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>Ruby</div>
<div class='tag-cloud-link'>Rails</div>
<div class='tag-cloud-link'>RubyOnRais</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/m75cCMbYv5LEsO8/items/b5836f61139d26cd3825'>元記事を表示</a></div>
<h3 id=参考になるRailsのプロダクトコード(OSS)5選

# はじめに
「この設計でいいのかな〜」「クラス名や変数名はこれでいいのかな〜」と思ったときに参考にできそうな、Railsで書かれたOSSを5つピックアップしました。

# 参考になるRailsのプロダクトコード(OSS)5選
## GitLab
![gitlab-blog-cover.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/459522/d718327f-fcc5-b4f2-be41-a1a352ef312f.png)

– GitHub: https://github.com/gitlabhq/gitlabhq
– Webサイト: https://about.gitlab.com/
– GitHubみたいな、Gitリポジトリのホスティングサービス
– 今回紹介する5つの中で、おそらく一番大規模なアプリ

## RubyGems.org
![スクリーンショット 2020-08-08 22.23.19.png](https://qiita-image-store.s3.ap-northeast-1

初心者がwebpackを調べてまとめてみた

##この記事について
Rails6でポートフォリオを作成していたが、webpackを理解できずに開発を進めていってたから勉強のまとめとして投稿

##参考URL
https://qiita.com/kamykn/items/45fb4690ace32216ca25

初心者向け!3分で理解するNode.jsとは何か?


https://note.com/billion_dollars/n/n596fecfdeb2e
https://qiita.com/ashketcham/items/48d64e960d436f8b6f78

##webpackとは
一言でまとめると**Node.jsで、サーバーサイドで動かすモジュールバンドラーツール**のこと

###さて、いきなり知らん単語ばかりが並んで思考が停止しそうになるぜ。
このwebpackの説明文読んだときの頭の中を表現すると、

「Node.jsって美味しいの???」
「モジュールとは・・・」

ここは落ち着いて知らん単語を調べるのみ!!!!

####Node.jsとは・・・
**サーバサイドで動

元記事を表示

Secretsantasができるまで零 データベース設計 

更新予定

元記事を表示

Secretsantasができるまで②  トップページ

更新予定

元記事を表示

【初心者が悩む】RubyとPHPとPythonどれが良いのか?

# まずはじめに
プログラミングをやってみようとしてまず考える事が「どのプログラミング言語から初めよう?」というところではないでしょうか。

そしてググっていくとRubyというプログラミング言語が真っ先に情報として入ってくるのではないでしょうか?

Rubyが真っ先に初心者に引っかかる理由は何と言っても「プログラミングスクールの殆どがRubyを激推ししているから」に尽きます。

ちなみに更にググってみるとRubyと似た言語にPHPとPythonがあるのです。

一体どの言語を勉強すれば良いのでしょうか?

## RubyとPHPとPythonのイメージ

まず、殆ど知識が無い状態の私が持っていたイメージ。

* Ruby – 初めて耳にする。
* PHP – 古臭い。
* Python – 初めて耳にする。

結果、なんとなくPHPは聞いたことがある…という程度です。私の場合は、ワードプレスでブログ運営していた時期が少しばかりあったのでPHPというプログラミング言語の存在は知っていました。

PHPは古臭いと書きましたが、ググってみると、

* Ruby – 1993年2月24日生

元記事を表示

deviseで送信されるメールを非同期処理にする方法

# はじめに
railsで作ったアプリケーションにdeviseを導入していますが、会員登録時などに送信するメールを非同期処理でおこないたいと思います。
メール送信処理でエラーが発生しても画面操作が続けられることがメリットです。
今回は非同期処理に`delayed_job`を使用します。
他には`side_kiq`を使う方法もあります。

# 前提
– deviseが使用できること。

# devise-asyncのインストール
以下のgemをGemfileに追加し、`bundle install`してください。

“`:Gemfile
gem ‘devise-async’
“`
– 参考
https://github.com/mhfs/devise-async

非同期処理を有効にするため、`devise-async.rb`を修正します。

“`config/initializers/devise-async.rb
Devise::Async.setup do |config|
config.enabled = true
end
“`

`queue_adapter

元記事を表示

【puma】puma4台インストールできない問題の対処法

## 環境

Rails 5.2, 6.0
puma 4.3.1, 4.3.4, 4.3.5など
xcode 12.0
xcodeのバージョンは`$ xcodebuild -version`で確認できます。

「puma4台インストールできない問題」というよりは「xcode最新版を入れているとpuma4台インストールできない問題」です。
Rails6で開発をしようとしたところ、以下のようなエラーが出てpumaのインストールができませんでした。

## エラー文

### $ rails new new_app

“`
$ rails new new_app
…(省略)
Fetching bootsnap 1.4.7
Installing bootsnap 1.4.7 with native extensions
Using bundler 2.1.4
Using byebug 11.1.3
Fetching regexp_parser 1.7.1
Installing regexp_parser 1.7.1
Using xpath 3.2.0
Fetching capybara 3

元記事を表示

[無料で簡単]RailsアプリをHerokuで公開する方法

#プログラミングの勉強日記
2020年8月8日 Progate Lv.226

#目標
 すでにローカルで作成済みのRailsアプリケーションをHeroku上で公開する。(すでにGitHubにコードをプッシュ済み)

#方法

##1.Herokuに新規登録をする
 [Herokuの公式サイト](https://jp.heroku.com/)から新規登録を行う。(無料)

##2.Heroku用のデータベースをインストールする。
 Gemfileを以下のように書きかえる。

“`:Gemfile
# 開発環境、テスト環境
group :development, :test do
gem ‘sqlite3’ # sqlite3
end

# 本番環境
group :production do
gem ‘pg’ # PostgreSQL
end
“`

0808.PNGCould9での環境開発 – チートシート (Rails Tutorial)

“`
$ printf “install: –no-document \nupdate: –no-document\n” >> ~/.gemrc
“`

リスト 1.1: バージョンを指定してRailsをインストールする

“`
$ gem install rails -v 5.1.6
“`

リスト 1.2: Railsプロジェクトで使うenvironmentディレクトリを作成する(クラウドの場合は不要)

“`
$ cd # ホームディレクトリに移動する
$ mkdir environment # ‘environment’ ディレクトリを作成する
$ cd environment/ # ‘environment’ ディレクトリに移動する
“`

元記事を表示

docker-compose upでDBが立ち上がらないときにやったこと

dockerで環境構築をし、サーバーを起動しようと`docker-compose up`をすると
`Mysql2::Error::ConnectionError: Unknown MySQL server host ‘db’ (-2)`というエラーが出てしまう。

ターミナルにて、エラーログを確認すると
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/484801/48df7163-8824-1e10-4bac-96a59217265d.png)
何かが原因でDBがシャットダウンしてしまっている模様。

`privilege tables`なのでsudoで作成するユーザのテーブル?
なぜdockerでこの内容のエラーが出る?
と色々疑問に思ったが、とりあえず一度全てのvolumeを削除してみることに。

## 解決策
①volumeのIDを調べる

“`
$ docker volume ls
DRIVER VOLUME NAME
local

元記事を表示

form_withにselectでジャンルを選択する方法

#はじめに
– Golf Gearのreview Appを作成中
– 投稿の際、Maker(Taylormade, calloway…)とClubの種類(Driver, Iron, Putter…)とFormから選んで投稿したい。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/630397/394edcd7-dd62-89e0-a479-48c88f9926ef.png)

#form_with実装
“`erb:_form.html.erb
<%= form_with(model: @gear, local: true) do |form| %>

<%= form.label :maker_id, "Maker" %>
<%= form.select(:maker_id, Maker.all.map {|maker|[maker.name, maker.id] }, {prompt: "Selec

元記事を表示

dockerコンテナ内でrspecコマンド(自分用)

“`text:全specファイルをテスト
bin/rspec
“`

“`text:特定のディレクトリをテスト
bin/rspec spec/system
“`

元記事を表示

lazy_high_chartsを1.6.1にアップデートしたらCIが落ちるようになった

Railsで[lazy high charts](https://github.com/michelson/lazy_high_charts)を使っていて、最近アップデートしようとしたら、エラーが出るようになって更新できなかったので、そのときに調べたことをまとめています。

## 気の早いお方へ
7/29以前から[lazy_high_charts](https://github.com/michelson/lazy_high_charts)を使っていて、アップデートしたら `couldn’t find file ‘highcharts/highcharts’ …`というエラーが出てあれー?ってなっている方は`rake highcharts:update`をしてみてください。` vendor/assets/javascripts/highcharts`以下に最新の[highcharts](https://www.highcharts.com/)がダウンロードされて使えるようになります。

## 詳細
### CIでエラー

dependabotが更新のプルリクを作ってくれていたんで

元記事を表示

OTHERカテゴリの最新記事