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

Rails関連のことを調べてみた2023年01月13日
目次

bundle exec cap production deploy でのエラー解決方法

## はじめに
プログラミング初心者による備忘録です。

今回は`Capistrano`を使用してのEC3への自動デプロイをする過程で発生したエラーについて、解決方法を残します。

## 発生している問題・エラーメッセージ
以下のコマンドを実行したところ
“`
% bundle exec cap production deploy
“`

下記のエラーが発生
“`
00:00 git:wrapper

中略

00:05 git:create_release
01 mkdir -p /var/www/hoge/releases/20230111145424
✔ 01 ec2-user@35.79.231.12 0.079s
02 git archive master | /usr/bin/env tar -x -f – -C /var/www/hoge/releases/20230111145424
02 fatal: not a valid object name: master
02 tar:

元記事を表示

haml-rails によるerb->haml変換

Gemfile書き方

“`Gemfile
gem ‘haml-rails’
“`

変換コマンド

“`
rails haml:erb2haml
“`

元の.erbファイルを削除するか -> y

“`
Would you like to delete the original .erb files? (This is not recommended unless you are under version control.) (y/n)
y
Deleting original .erb files.
“`

元記事を表示

undefined method `current_sign_in_at’ for #< ~~~ > の解決方法

# はじめに
こんにちは! @Keichan_15 です!

Deviseを用いて `sign_up` や `sign_in` を行うと、表題にある `undefined method ‘current_sign_in_at’ for`のエラーが出た際の解決方法について、備忘録も兼ねて記載していこうと思います。

尚、こちらのエラーを検索すると下記のような記事や解決方法が出てきます。結論、解決方法として間違いでは無いです。今回の想定としてはdeviseをinstallしてごくごく一般的なモデル作成を行った場合 `ex) $ rails g devise User` を前提としてお話していきます。
下記の方法でも間違いでは無いですが、マイグレーションファイルを修正してresetを掛けるといったナンセンスなことは面倒なので…ってことですね。

https://qiita.com/Asaiii12/items/6893ffe808166da52499

https://stackoverflow.com/questions/55735895/nomethoderror-undefined-m

元記事を表示

【個人開発】料理人のための仕込み管理アプリCucina-クッチーナ-を作りました

## はじめに
こんにちは!@harufumi03と申します。
この記事は初学者が初めて個人開発したWebアプリの紹介記事です。
ちなみに「クッチーナ」という名前はイタリア語で「キッチン」という意味です。

アプリURL:http://cucina-app.com/
「仕込み」とは?…お客様に素早く料理を提供するための下準備のこと

## 開発の経緯
私は調理師として働いていた経験があり、困り事がありました。
###### それは日常業務の「仕込み」についてです。
私の経験上「仕込み」を行う時は担当している仕込みを個人的に管理してホワイトボードやメモなどに書き出して管理していました。それにより他の人と使用する食材が重なってしまったり、気をつけていても忘れてしまって仕込みが出来ず、関連する料理の提供ができないという事もありました。この問題点をチーム内で共有して誰が何の仕込みをしてどの食材を使用するのか分かるようになれば解決できてお客様にも問題なく料理を提供できるのではないかと考え開発しようと考えました。
kaiketsu.png

元記事を表示

has_secure_passwordとは

# has_secure_passwordは検証もしている。
### 前
“`rb
has_secure_password
.
.
.
validates :password, presence: true,
length: { minimum: 6},
allow_nil: true

“`
## バリデーションに引っかかってみる
“`can’t be blank“`
“`is too long (maximum is 20 characters)“`
“`can’t be blank“`
### errorの配列を見てみる。
“`
#, #20}>, #

元記事を表示

エラー:bundler: command not found: unicorn_rails Install missing gem executables with `bundle install`

## はじめに
プログラミング初心者による備忘録です。

AWSでデプロイするために`unicorn`でrailsを起動させようとした所、エラーが発生。

## エラー内容
“`
[ec2-user@ip-000-00-00-00 hoge]$ bundle exec unicorn_rails -c config/unicorn.rb -E production -D
bundler: command not found: unicorn_rails
Install missing gem executables with `bundle install`
“`

## 試したこと
下記のサイト様の症状と同じなので解決方法を試す。
参考サイト https://teratail.com/questions/315531

❶rbenvをrehash
❷bundlerの入れ忘れ
❸GitHubへの反映(push,bundle install)

しかし、解決できず。

## 解決方法
“`
% cat .bundle/config
“`
でconfigファイルの設定を確認すると

元記事を表示

エラー:An error occurred while installing pg (1.4.5), and Bundler cannot continue.

## はじめに
プログラミング初心者による備忘録です。

今回はrenderにデプロイされているアプリをAWSのEC2環境へ移す際にエラーが発生したので、その原因と解決方法です。

## 何をしている時にエラーが出たのか
以下のコマンドでEC2内にローカルと同じバージョンの `bundler`をインストールしようとしました。
“`
[ec2-user@ip-000-00-00-000 hoge]$ gem install bundler -v 2.1.4

[ec2-user@ip-000-00-00-000 hoge]$ bundle install
“`
すると以下のエラーが発生。
“`
[ec2-user@ip-000-00-00-000 hoge]$ bundle
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby, x86_64-linux but the dep

元記事を表示

【rails】DM機能からグループチャット作ってみた〜

# 前提
https://qiita.com/nojinoji/items/2b3f8309a31cc6d88d03

この記事でDM機能を作っときましょう
# やり方ー
### Controller
“`ruby:rooms_controller.rb
(略)
def new
@users = User.all
@current_room = Room.find(params[:id])
@entry = Entry.new
end
def room_add_user
entry = Entry.new(entry_params)
if entry.save
redirect_to room_path(entry.room_id)
else
redirect_to new_room_path(entry.room_id)
end
end
(略)
private
def entr

元記事を表示

Rails7構築 -その2#- cssをbootstrap指定(FontAwesomeまで)

### ↓その1のRails newからの続きです。
https://qiita.com/devzooiiooz/items/5f12c0601acd2ae9b5d9

その1はデフォルト(javascriptアプローチにimportmaps、アセットパイプラインはsprocketsを使用)で構築する方法ですが、ここではcssプロセッサでbootstrapを指定する方法を説明します。

##### 参考:こっちはimportmapsを使用する場合
https://qiita.com/devzooiiooz/items/4e8514622fd0661048c1

# Rails newにcssオプションでbootstrapを指定
これによりjavascriptアプローチがesbuildに固定され(-j esbuildと同じ)、importmapは使用できなくなる。アセットパイプラインはデフォルトのsprocketsになるようです。
“`sh:
$ rails new . -c bootstrap -d mysql
“`
# 動作確認用のページを作成
“`sh:
$ rails g

元記事を表示

MySQL カラム エラー

# はじめに
deviseを用いてユーザー管理機能の実装中にエラーが発生しました。

# エラー内容
`migrateファイル`にてテーブル作成中。
↓以下のようにカラムの設定を実装した。
~~~ruby
create_table :users do |t|
## Database authenticatable
t.string :email, null: false, default: “”
t.string :encrypted_password, null: false, default: “”
t.string :name, null: false, default: “”
t.text :profile, null: false, default: “”
t.text :occupation, null: false, default: “”
t.text :position,

元記事を表示

Rails(Ruby)でPDFを作成、圧縮、S3にアップロード

# TL;DR

“`rb
# PDFをインラインで作成
require ‘wicked_pdf’
pdf = WickedPdf.new.pdf_from_string(
“Lorem ipsum ロレム・イプサム 呂礼無・維風沙夢” * 500,
return_file: true,
)

# Tempfileの作成&圧縮
require ‘tempfile’
require ‘zlib’

tf = Tempfile.open([‘foo’, ‘.pdf.gz’], binmode: true)
Zlib::GzipWriter.wrap(tf, Zlib::BEST_COMPRESSION) do |gz|
gz.print(pdf)
end

# AWS S3アップロード
require ‘aws-sdk’

client = Aws::S3::Client.new(
access_key_id: ENV[‘AWS_ACCESS_KEY_ID’],
secret_access_key: ENV[‘AWS_SECRET_KEY_ID’],
regi

元記事を表示

Rails学び まとめ [下書き中]

新しい環境で仕事を始めてみて、学生時代ぶりにRails, Ruby, MySQLを触ったので、学習メモとして雑多に残す。
元々はJavaを使っていたのと、業務内容は運用だったので、そもそも開発をあまりしていない状態だったので、新しい発見が多い。

## Ruby and Rails
– [Struct](https://qiita.com/k-penguin-sato/items/54189d5ed4e5f7463266)
– RubyにおけるStruct(構造体クラス)は簡易的なクラスのようなもの
– 利用ケース
– まとまったデータを扱いたいが、クラスを作るまでもない場合。
– クラス内で特定のデータのまとまりを表現する場合。
– 通常のクラスとの違い
– 継承、メンバの追加・削除ができない。
– 明示的にアクセスメソッドを定義しなくても、構造体クラス外でメンバの参照・更新が可能。
– scope
– データアクセスの際の条件式に名前をつけて、メソッドチェーンみたいな感じで繋げてかける。

元記事を表示

【Rails】Webpacker::Manifest::MissingEntryErrorの対処方法

# 0. 環境
macOS Ventura 13.1
Ruby on Rails 6.0.5
Ruby 2.7.7
yarn 1.22.19

# 1. エラー発生状況
Railsでアプリを作成し、`http://localhost:3000/(コントローラ名)/1`にアクセスしたところ、次のエラーが発生した。

“`:view
Webpacker::Manifest::MissingEntryError

Webpacker can’t find application in /Users/username/myapp/public/packs/manifest.json. Possible causes:
1. You want to set webpacker.yml value of compile to true for your environment
unless you are using the `webpack -w` or the webpack-dev-server.
2. webpack has not yet re-run to reflect up

元記事を表示

作曲サークル内に音楽配信サービスを作った

## はじめに
 本記事ではコサメガが作成した作曲サークル内音楽配信サービス「Kitchotify」について、作成動機、サービス概要などを説明します。ソースコードをGitHubで公開しています。

https://github.com/kosamega/Kitchotify_app

## 作成の動機
### サークルの状況
 私が所属している作曲サークルでは、2ヶ月に1回会員達がオリジナル曲を提出し、提出された曲を皆で聴き、提出された曲でアルバムを作ってデジタルリリースしています。またコロナ以降全ての活動が基本的にオンラインで行われています。
### 問題
 コロナ以降全体的にコミュニケーションが減っていたこともあり、会員がそれぞれの曲を1度聴いてそれで終わりという状況がありました。お互いの曲をじっくり聴いて感想・アドバイスを言い合うことや、軽く感想を言い合うことなどは、曲作りがうまくなるために、また会員同士の仲を深めるために重要なことなので解決したいと考えていました。
### 解決策
 提出された曲を聴きにくいことが原因であると考え、会員の作った曲が聴きやすくなるサービスを作りまし

元記事を表示

メールアドレスにバリデーションをかける

# プロゲート少しやっていた。
“`rb
class User < ApplicationRecord . . . validates :email, {presence: true, uniqueness:true} . . . end ``` # railsガイドで目的と合いそうなものを探す ### 2.6 format このヘルパーは、withオプションで与えられた正規表現と属性の値がマッチするかどうかを検証します。 ```rb class Product < ApplicationRecord validates :legacy_code, format: { with: /\A[a-zA-Z]+\z/, message: "英文字のみが使えます" } end ``` :withoutオプションを使うと、指定の属性にマッチしない正規表現を指定することもできます。 デフォルトのエラーメッセージは「is invalid」です。 #### 出典 https://railsguides.jp/active_record_validations.html#%E3%

元記事を表示

薄いコントローラ、分厚いコントローラとは何か

MVCモデルを用いて開発をしている際、「薄いコントローラ」や「分厚いコントローラ」という言葉をよく聞くかと思います。
薄いコントローラとはなんでしょうか?分厚いとどうなるのでしょうか?
コントローラの整理をキッチンの棚の整理に例えて説明していきます。

# コントローラってどうやって書いたらいいんだっけ?
Railsの生みの親であるDHHは下記のように言っています。

>コントローラが元々持っているRESTアクションやデフォルトの5つの機能にはないメソッドを付け加えたいと思ったら、いつだって新しいコントローラを作る。それだけでいいのです。

https://postd.cc/how-dhh-organizes-his-rails-controllers/

5つの機能って何?という方は、ぜひ調べてみてくださいね。
7つのアクションと言われていることの方が多いかもしれません。

https://qiita.com/morikuma709/items/5b21e9853c9d6ea70295

7つのアクションを用いたコントローラの作成方法について少しだけ解説すると、、、
ある機能を実

元記事を表示

seed_fuでYour seed constraints contained unknown columns: `id`.と言われたのはそのテーブルのプライマリキーがidではなかったから

Fusicの賀来という者です。

https://fusic.co.jp/

## 解決したい問題

ある日、Railsアプリでseed_fuというgemでseedを流したところ、怒られました。

“`terminal
rails aborted!
ArgumentError: Your seed constraints contained unknown columns: `id`. Valid columns are: `user_id`, `group_id`, `group_uid`, `created_at`, `updated_at`.
“`

gemはこちら。

https://github.com/mbleigh/seed-fu

バージョンの確認です。
古くてちょいアレですが…。

“`
ruby:2.3.4
Rails 5.1.7
“`

seedファイルはこうなっています。

“`ruby
UserRegistration.seed do |ur|
ur.user_id = user.id
ur.group_id = group.id
end

元記事を表示

【Rails】画像アイコンを作ってみよう!【画像表示、加工】

## はじめに
どうも、春からエンジニア転職予定のkazuhiroです。
文系職からの転職であり、プログラミングは未経験ですが、
初学者目線で疑問に思った点などを、アウトプットしていきたいと思います。
※間違いや改善点などありましたらコメントいただければ幸いです。

## 本題
転職先のBossより、このような練習問題が出された。![スクリーンショット 2023-01-04 1.18.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3083940/585419cf-e369-c754-7f01-065d661ba97a.png)

やってやんよ、と。
ユーザー一覧画面については、以前掲示板一覧画面を作成していたため、
同様の手順で作成することができたが、画像の表示方法で引っかかってしまう。
![掲示板.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3083940/c8c22586-d21a-7a7a-8830-8d0

元記事を表示

Rails devise パスワードリセット後のリダイレクト先の指定

# 何がしたい?
ログイン画面の「パスワードを忘れた方」よりパスワードをリセットした場合に特定のページへリダイレクトしたい。
(deviseのデフォルトの場合はログイン画面へ遷移します。)

# 何が難しかったのか
なんといってもdeviseは簡単にログイン回りの機能を全て実装できる代わりに何が起きているのかわからないブラックボックス状態じゃないですか?
少なくとも僕は完全に理解したとは言い難いです。
今回パスワードリセットのメールを送った後に遷移するページを指定したいだけなのに異常に難しかったので記事にしておきました。

# 結論
いいから教えろ!

## 1. routesに追加
“`ruby
devise_for :users, controllers: {
passwords: ‘users/passwords’,
}
“`

## 2. Users::PasswordsControllerを作成
Devise::PasswordsControllerの継承を忘れずに。

“`ruby
module Users
class PasswordsController

元記事を表示

【個人開発】初学者が初めてRails7系でポートフォリオを作った際に意識したこと、感じたこと

## はじめに
:::note info
これが初の投稿なので何かお気づきの点等あればご指摘いただけると助かります。
:::
今回初めてプログラミングスクール内でポートフォリオをMVPリリースしたので、
実装の際に意識したこと感じたことについてまとめてみました。

特に私のような初学者の方向けに書いてみました。
少しでも実装の参考になれば幸いです。

ちなみにMVPとは
Minimum Viable Product、**顧客に価値を提供できる最小限のプロダクト**のことです。
要するに最小限の機能でサービスをリリースするということですね。
MVPリリースのメリットは
最小限の機能を備えた状態でユーザーからのフィードバックをもらうことで
**ユーザー目線で実装・改善が進められること**、**効率よくサービスの開発が行えること**です。

MVPの考え方については以下のサイト等を参考にしていただければと思います。

MVP(Minimum Viable Product)とは? 意味やビジネス上のメリットを解説

## 前提
私はプログラミングスクールのRUNTEQで半年ほど勉強をしてから開発に取り

元記事を表示

OTHERカテゴリの最新記事