Rails関連のことを調べてみた2021年12月22日

Rails関連のことを調べてみた2021年12月22日
目次

Dotenv を導入したのに環境変数が読めない

rake restart

元記事を表示

【Rails】seeds.rbファイルとは

##seedsファイルとは
初期データを生成してくれるファイルのことで、簡単にテストデータを作ったりできる。

##記入方法
“`
#通常の場合
User.create(name: “Taro”)
User.create(name: “Hanako”)

#配列の場合
users = User.create([{name: “Taro”}, {name: “Hanako”}])

#大量のテストデータの場合(この場合は100回繰り返す)
100.times do |n|
User.create(title: “test{n}人目”, content:”test!#{n}回目”)
end
“`
内容を記入し終わったら、“rails db:seed“のコマンドを実行。

##Faker
このFakerを使うと、実在しそうなデータを生成してくれるgemがあるのでその手順や記入法も記載しておく。

**Gemfile**

“`
gem ‘faker’

↑この文を追加後、bundle installを入力。
“`

**記入法**

“`
10.times do
Use

元記事を表示

未経験初心者がWEB家計簿を作ってみた【Rails / Docker / Heroku / CircleCI】

## 初めに
こんにちは。
当記事は独学・未経験者がポートフォリオを兼ねてWEBアプリを作った、ご紹介させて頂きたいと思います。

昨今、未経験者が作成したポートフォリオ作成記事も多く存在するので、何番煎じかにはなってしまいますが、
この記事も同じ初学者の方の参考になればうれしく思います

## 概要
共同口座専用の家計簿アプリ「キョウドウコウザ」
 http://www.kyodokoza.com/

シンプルかつ見やすさにこだわった「共同口座(共用口座・共同財布)向けの家計簿アプリ」です。

img1.png img2.pngActiveRecord::LogSubscriber#log_query_source(private)をElixir/Ectoに移植するぞ

## はじめに
昨日は @GKBRさんの[Liveviewでお手軽オンラインゲーム開発](https://qiita.com/GKBR/items/4f83cde368078572ad0d)でした!
LiveviewやHotwireといったServerエンジニアからのモダンなFrontendは、自分が普段Reactを使っている事もあってまだ試せていませんが、socket周りの興味は大きいので近々[昨日の記事を](https://qiita.com/GKBR/items/4f83cde368078572ad0d)参考に遊んでみたいと思います。

以下軽い自己紹介です。

普段はスタートアップでRailsを中心にインフラやらCMSやらの開発をしております。
最近の業務はRuby, MySQL, Elasticsearch, CircleCiの整備等、SREよりな業務が多いです。

エンジニアとして4年ほど経験を積み、そろそろもう一皮向けたいな、と思ってElixirを触り始めました。

今回は勉強ついでに、なにか目的が欲しく、慣れ親しんだRailsと絡めた挑戦を記事にまとめます。
CodeR

元記事を表示

フリーターからエンジニアになってみて

今回、「エンジニアになったきっかけ」に関しての記事の作成依頼があったため、記事を書かせて頂こうと思います!
「自己紹介」
「エンジニアになろうと思ったきっかけ」
「エンジニアとして働いてみた感想」
「今後はどんなエンジニアを目指したいか」
という項目で記事を書かせてもらいます。

## 自己紹介
2019年3月に慶応義塾大学環境情報学部を卒業し、2019年4月からポテパンキャンプというプログラミングスクールで、RORを勉強し、2020年1月からWebエンジニアとして働いています。そのため、今はエンジニア2年目となります!

主な業務としては、ECの基幹システムの内製化や新規機能の要件定義・仕様策定・実装等を担当しています。
新しい人が入ってきた際は、育成等も担当したりしています。
また、ご縁があり、つい先日から副業も始めさせて頂きました!
副業の方は、まだjoinさせて頂いて1ヶ月も経たないような状態で、1日でも早く力にならなくてはと思い、日々開発させて頂いております!

## エンジニアになろうと思ったきっかけ
大学4年時に、企画から実装までを3人一組のメンバと共に実装するとい

元記事を表示

拝啓、子ども向けサービスに興味があるエンジニアへ。とにかくwebエンジニアが欲しいEdTechスタートアップのゼロイチ開発を振り返る

**とにかくwebエンジニアが欲しいキッズウィークエンドの田中**(24)です。タイトルに心の声が飛び出てしまいました。

本記事は、[ジーズアカデミーAdvent Calendar2021](https://qiita.com/advent-calendar/2021/gsacademy) 22日目の記事です。
昨日(21日目)は、@Kendaiさんの「[2週間でMVPを開発し鎌倉で50組をナンパした結果](https://note.com/kendai/n/nb593d20d23b7)」でした。ご自身の体験を余すことなくシェアしていて価値ある記事だと思いました、必読です!

# はじめにの前に
まずこの記事を書いた理由は、以下の両方を満たす共有ができると思ったからです。

– 「ジーズアカデミー Advent Calendar」をカンタンに集計して見えた本記事の「**希少性**」
– 皆さんが知りたいと思っているゼロイチ開発についての「**需要**」(同期から結局プロダクトどうやって作るの?って聞かれるよという話を聞きまして、そういう需要はあるだろうと仮定してます)

[希少性につ

元記事を表示

EC2環境でのRails6.0/MySQL構築手順

# はじめに
本記事ではAWSのEC2,VPC,RDSを用いた基本的な構成でRailsアプリケーションを動作するまでの手順を記述しています。
現時点では最終的に `http://パブリックIP:3000`でアクセスできるまでの手順となっています。
本番を想定した設定に関しては随時記載していきます。

# VPC作成
1 VPCダッシュボードを開き、「VPCを作成」を押します。
![スクリーンショット 2021-12-20 23.01.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/230985/d621074d-a481-cbe9-6faf-ca547966eb36.png)

「VPC作成」画面から名前タグ、IPV4CIDRブロックを入力し、「VPCを作成」を押してください。
– 名前タグ: rails-vpc
– IPv4 CIDR: 10.0.0.0/16

![スクリーンショット 2021-12-20 23.05.39.png](https://qiita-image-store.s3.a

元記事を表示

【初心者向け】Bootstrapのグリッドシステムで思い通りのレイアウトを作るコツ

#はじめに
こんにちは!DMM WEBCAMP Advent Calendar 2021 22日目を担当させていただきます??
DMMWEBCAMPメンターの@tone0623です!

**皆さん、[Bootstrap](https://getbootstrap.jp/)を正しく使えていますか?**
BootstrapはCSSフレームワークで、簡単な記述でレスポンシブなWebデザインができる優れものです。

しかし、メンター業務を通して、

– **お手本のページで検証ツール使えないんですけど、どうやってレイアウトを作ればいいですか?**
– **[Bootstrapのドキュメント](https://getbootstrap.jp/docs/5.0/getting-started/introduction/)を読んだのですが、どこからデザインをすればいいかわかりません。**
– **クラス名の.container/.raw/.columnの使い方がいまいちわかりません。**

など、Bootstrapの導入はしたものの、うまく使えない方

元記事を表示

本番環境をAWSからHerokuへ移した際のデプロイでエラー

https://qiita.com/divclass123/items/070d0ee9e1f6f6b906df

この方法で、デプロイをしてます。いやー、いい記事だ

/app/vendor/bundle/ruby/2.6.0/gems/activestorage-6.1.3.1/lib/active_storage/service/registry.rb:18:in `block in fetch’: Missing configuration for the amazon Active Storage service. Configurations available for the test、local services. (KeyError)

herokuデプロイでエラー

environments/production.rb

“`
config.active_storage.service = :amazon
“`

“`

config.active_storage.service = :local

“`

に変更

Dec 2

元記事を表示

Railsにおける秘密情報の管理をざっくり掴む

#概要
Railsを学習していると、秘密情報の管理方法がたくさんあってどれを使えばいいのか分からなくなってしまうことが多々ありました。
そこで、各バージョンで使用されている手法をまとめてみました。

#秘密情報とは何か
秘密情報とは、パスワード、トークン、暗号キーなど外部に公開すべきでない情報のことを指します。
例えばAWSのアクセスキーなども秘密情報に含まれます。

#結論
Rails5.2以降は`credentials`で管理をしています。
それ以前では、
Rails4.1:`serets.yml`
Rails5.1:`encrypted secrets`
などが使用されていました。

#credentialsの使い方
`config/credentials.yml.enc`にYAMLファイルとして暗号化され、秘密情報が保存されています。
ここで暗号化されたファイルを復元するには、`Rails new`の際に作成された`master.key`を使用します。

編集方法は、

“`
% EDITOR=vim rails credentials:edit
“`

VScodeで

元記事を表示

1回の送信で複数のレコードを作成したい

### 前提
タイトル参照。
冷蔵庫の在庫管理をするオリジナルアプリを作成中です。
食材は名前、賞味期限、数量、値段を入力(バリデーションはまだ設けてないです)
これらをカテゴリーごとに表示、保存できるように試行錯誤中。

この「保存」の処理が、プログラミングを学び始めて4ヶ月の初心者にはとても難しく…

Ruby on Rails2.6.5を使用していると思います。(.ruby-versionというファイルにそう書いてあったので)

### テーブル名
**Categoriesテーブル**
c_name
user(外部キー)

**Itemsテーブル**
name
category(外部キー)

他にもテーブルやカラムはありますが、試作段階で使用しているのはこれだけです。

### 最終的に落ち着いたコード
フォーム部分

“`erb
<%= form_with model: @item_information, url: items_path, local: true do |f| %>

<% @categories.each do |category

元記事を表示

[rails×Heroku]ActionCable を本番環境でRadisを使って実装する方法

# railsプロジェクトを編集

“`ruby:conig/enviroment/production.rb
# すべての送信元からのリクエストを許可
config.action_cable.disable_request_forgery_protection = true
“`

“`yml:config/cable.yml
development:
# adapter: async
adapter: redis
url: redis://localhost:6379

test:
adapter: test
# 本番環境ではredisを使う、URLの部分を以下のように変更
production:
adapter: redis
# url: <%= ENV.fetch("REDIS_URL") { "redis://localhost:6379/1" } %>
# ↓ herokuのアドオンでradisを作成するとREDIS_URLという環境変数に自動的にURLを設定してくれる。
url: <%=ENV['REDIS_URL']%>

元記事を表示

Untangled_pasta_trees How_to_use

[Untangled_pasta_trees](https://untangled-pasta-trees.herokuapp.com/)
[Untangled_pasta_trees、仕様、技術、詳細](https://qiita.com/yoshidashota0328/items/43ac07100e1b06ff435a)

# サイト概要
### ツリー構造でカテゴリー分けできるマークダウン形式のノートです。
### ユーザー登録すればツリーが作成できます。
### 登録しなくても公開されたツリーはAll_treesから閲覧することが出来ます。
### ツリーの内容はデフォルトで非公開設定ですが、必要であれば公開することもできます。
# 用語解説
### tree = 1画面に表示されたツリー構造のノート全体を指す言葉。
### leaf = マークダウン入力ができる1要素。ツリー構造の葉っぱ1枚を指す。
### leaf_ID = leafの頭についている番号。
### All_trees = 公開されたtreeが一覧表示されるページ。トップページにある。
### paren

元記事を表示

Rails Instrumentation API へのアクセスを少しだけ簡単にする

先日、 [Kaigi on Rails 2021](https://kaigionrails.org/2021/) というイベントで[登壇をする機会](https://kaigionrails.org/2021/talks/yykamei/)をいただきました。緊張しましたがいい体験になりました。

このイベントで Rails の Instrumentation API について触れました。

ActiveSupport::Notifications?【初学者必見】 HerokuとAWS S3を連携して投稿画像を保持する方法

Rails初学者なら必ずと言っていいほどデプロイで使用するHeroku
**? 実は作成したアプリからHerokuに投稿した画像は保持されず、一定期間経つと消えてしまいます?**
今回はRailsアプリ(CarrierWave)から投稿した画像をS3に保存して消えないようにする方法を超丁寧に解説します!

## やりたいこと
Herokuにデプロイした画像投稿機能付き掲示板アプリで、ユーザーが投稿した画像をAWS S3に保存して、一定時間経過しても画像が消えないようにしたい。

## 開発環境 & 前提条件
Ruby 3.0.1
Rails 6.1.4.1
CarrierWaveで画像投稿機能実装済み
Heroku登録済み
サンプルアプリ:[【投票制】マンガ・アニメランキング](https://anime-manga-ranking.herokuapp.com/)

## おおまかな手順
1. AWS関係の設定
1. CarrierWaveの設定
1. Herokuの設定

こちらを超丁

元記事を表示

AWS EC2の「No space left on device」エラーの解決方法

## はじめに
株式会社じげんのrkinseiです。
:airplane: 留学エージェント比較サービス 留学くらベーるの開発を担当しています。

今回はAWS EC2の「No space left on device」エラーの解決方法を紹介します!

苦戦しながら修正したものの、完璧な対応はまだできていないと思いますが、今回実際に試してみた対処法をまとめてみました。
これから同じエラーを解決したい方の参考になれば幸いです。:relaxed:

## エラーの概要
RailsアプリケーションをAWSのEC2インスタンスにデプロイした際に、「no space left on device」とエラーメッセージが表示されます:triumph:

“`
error An unexpected error occurred: “ENOSPC: no space left on device, copyfile ‘/home/ec2-user/.cache/yarn/XXXXXXXXX'”.
rake aborted!
“`

インスタンスにログインすると、以下のようにエラーメッセージが表示さ

元記事を表示

Ruby on Railsの人気のあるデザインパターン

## はじめに
デザインパターンは、ソフトウェア開発の一般的な問題を解決するため、様々なプログラムで再利用できるソリューションのことです。RailsはすでにModel-View-Controller(MVC)というデザインパターンを実装しており、コードをより適切に整理しています。

この記事にデザインパターンの定義、メリットとデメリットについて少し説明したいです。それにRailsによく使われているデザインパターンを紹介し、それぞれの例を検討します。

## デザインパターンとは

デザインパターンは、アプリケーションを開発する際に使用した方がいいベストプラクティスの一部であり、読みやすさを向上させ、将来的にそれをより適切に維持できるようにします。デザインパターンに慣れていない場合は、レシピのようなものです。デザインパターンもよくある間違いを減らすのにも役立ちます。

デザインパターンは具体的なコードではなく、使用すべき概念とプラクティスにすぎないことを理解することが重要です。 この記事、または他のデザインパターンに関するガイドでは、アプリケーションにすぐにプラグインできるコードはありま

元記事を表示

CloudWatchLogsでRailsアプリのログを表示してみた

## はじめに
Railsアプリケーションを運用しているEC2上のログを、CloudWatchで表示するまでの手順をまとめました。
公式ドキュメントをベースに細かい部分も説明していきます。

## CloudWatchLogsのメリット
* 複数のサーバーがあってもログを一箇所に集約して管理できる。一々複数のサーバーにssh接続する必要がない。
* EventBridgeなど他のAWSリソースとの連携が簡単。エラー発生したらSlackに通知することもできる。
* Logs Insightsを使って高度な検索ができる

![スクリーンショット 2021-12-20 15.48.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/603209/88f761bd-a0eb-f909-fe76-60314f3f7b8a.png)

## 前提
* AWSアカウント作成済み
* EC2インスタンス作成済み
* OS: CentOS 7.6.1810

## 手順の概要
1. ポリシーとロールを作成
1. EC2に

元記事を表示

ActiveRecordにおける楽観的ロックと悲観的ロックの使い方

# 環境

– Rails 7.0.0
– Ruby 2.7.5
– MySQL 5.7

# 楽観的ロック

`lock_version` というカラムを用意するだけで利用できます。

“`
$ rails g model user name:string lock_version:integer
$ bundle e rails b:migrate
$ bundle e rails c
“`

“`ruby
irb(main):001:0> User.create!(name: ‘Taro’)
(0.9ms) SELECT sqlite_version(*)
TRANSACTION (0.1ms) begin transaction
User Create (0.5ms) INSERT INTO “users” (“name”, “lock_version”, “created_at”, “updated_at”) VALUES (?, ?, ?, ?) [[“name”, “Taro”], [“lock_version”, 0], [“created

元記事を表示

ソフト開発未経験チームがオンボーディングでWebアプリ作ってみた

この記事は [DENSO アドベントカレンダー 2021](https://qiita.com/advent-calendar/2021/denso) の21日目の記事です。

# はじめに
社内の [リカレント制度](https://www.denso.com/jp/ja/news/newsroom/2021/20210527-01/#:~:text=%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E4%BA%BA%E6%9D%90%E3%81%B8%E3%81%AE%E3%83%AA%E3%82%AB%E3%83%AC%E3%83%B3%E3%83%88%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E6%A7%8B%E7%AF%89%E3%80%81%E9%81%8B%E7%94%A8) (ニュースメディアだと [キャリア転身制度](https://newswitch.jp/p/26996)という表現) でソフト未経験からキャリアチェンジを図り、2021年6月より開発チームにアサインされました

元記事を表示

OTHERカテゴリの最新記事