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

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

Ruby on Rails 事始め

# 本記事の対象者

これまでのRuby関連の知識として、下記のRuby製のOSSを触ったことがある。

* [Redmine](https://qiita.com/EasyCording/items/123be275d5c12e7c49f6)をSynology-NASで立ち上げることができた → [DSMのDockerを使用](https://qiita.com/EasyCording/items/b93c3e4fe5e44a8b17ac)
* GitlabをAWS-ECサーバーに立てることができた → UBUNTU上のDocker-Composeを使用

これからRubyを学ぶ上での、自分の目標設定

* RubyでWEBページが、サクッと作れること
* Redmineのプラグインが作れること
* Reactのような、最新のマテリアルデザインを取り入れたい
* React-Nativeで、スマホアプリも開発したい

# 反省点

* RORを始めるにあたって、これまで書籍等を読んできたが、そのたびに撤退させられている。
* GEMやBundleといった、Rubyの[環境整備](ht

元記事を表示

rails7でバリデーションエラーで画面が遷移しない場合の解決法

# 環境
Ruby 3.0.2
Rails 7.0.2.3

## 結論:Turboの動作をオフにする

form_withに `data: { turbo: false }` を追加する

“`ruby: new.html.haml (≒ new.html.erb)
= form_with model: @event, data: { turbo: false } do |f|
= f.label :name, ‘イベント名’
= f.text_field :name
“`

## 発生したエラー

バリデーションエラーが発生した際に、画面のリロードが発生せず、コンソールに以下のエラーが表示された。

“`ruby
Error: Form responses must redirect to another location at k.requestSucceededWithResponse
“`

## 問題発生時のコード

“`ruby: new.html.haml (≒ new.html.erb)
= form_with model: @event do

元記事を表示

Amazon ECS & Fargate と Docker on AWS CICDの学習まとめ(超初心者向け)

# これからはAWSのFargateだ!
ということで学習しながら設定の流れをメモとして随時更新します。

学習内容 ECS & Fargate, Load Balancing, Auto Scaling, ECR, CICD for ECS
最終的には、Rubu on Rails をFargateで動かすところまで目指します。

## AWSの準備&ユーザ設定
* AWSのアカウント作成
* IAM ユーザーの設定
ルートユーザ→Adominユーザ
* AWS アクセスの種類を選択(全部選択)
* アクセス許可の設定
→既存のポリシーを直接アタッチを選択
→AmazonECS_FullAccessを選択
* タグの追加 (不要)
* 認証情報(コンソールのサインインリンク保存)
* アクセス権限の追加
→既存のポリシーを直接アタッチを選択
→AdministratorAccess

## Fargateの設定
* リージョンを選択(東京)
* Elastic Container Service (ECS)を選択
* 2022/04時点では、ECS

元記事を表示

【Docker】Rails + Puma + Nginx + MySQL + React

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

## Rails + Puma + Nginx + MySQL + React
“`docker-compose.yml
version: ‘${COMPOSE_VER}’
services:
db:
platform: linux/x86_64
build: ./docker/db
command: –default-authentication-plugin=mysql_native_password && bash -c “chmod +x /docker-entrypoint-initdb.d/00_grant.sh”
healthcheck:
test: mysqladmin ping -h db -u$${MYSQL_USER} -p$${M

元記事を表示

ActiveStorageで管理するファイルをCloudFront署名付きCookieで限定配信

## この記事について

[以前の投稿](https://qiita.com/zagvym/items/a4f0524c94007317ac95) で、ActiveStorage-S3によるダイレクトアップロードについて調査しました。
その際、併せて「S3にアップロードされた画像ファイルをCDN経由で配信する方法」を調査・検討したので、その記録を記事にしました。

なお、アップロードされたファイルは一般に公開せず配信先を限定する必要があったため、AWS CloudFrontの[署名付きCookie](https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/private-content-signed-cookies.html)を利用して配信するようにしました。
そのシステム構成の概要と、Rails app側への改修例を記載します。

https://qiita.com/zagvym/items/a4f0524c94007317ac95

## 前提条件

まず、ユーザがプロフィール画像を任意にアッ

元記事を表示

【Rails】Cloud9でRuby on Railsの環境構築

## この記事でわかること
Cloud9で1からRailsの環境構築を行います。
今回インストールするRailsのバージョンは`6.1.5`です。

## 準備
ボリュームのサイズは30GiBに設定しています。

# Railsと必要なソフトウェアをインストールする
## シェルスクリプトのダウンロード
まず、以下のコマンドを実行して、必要なソフトウェアのインストールコマンドが書かれたファイル(シェルスクリプト)をダウンロードします。
“`bash
$ wget https://wals.s3.ap-northeast-1.amazonaws.com/curriculum/rails/environment.sh
“`
##### wgetとは
wgetとはコマンドの一種で、指定されたURLのファイルをダウンロードするという役割があります。このコマンドを実行した後にフォルダを確認すると、**environment.sh**というファイルがダウンロードされています。

## シェルスクリプトを実行
以下のコマンドを実行して、ソフトウェアをインストールします。
`sh e`まで打って

元記事を表示

本番環境をRails6.0からRails7.0へアップグレード

今回、自社サービスの本番環境を Rails 6.0 から Rails 7.0 へアップグレードしましたので、その備忘録として書き留めておきたいと思います。

サービスを展開してるサイトですが、リクエストベースで1分間に約6000リクエスト程度が発生するサイトになります。
そこへ、Ruby 3.1.1 + Rails7.0.2.2 (作業時点の最新)の導入を行いました。

アップグレードの手順自体は、いろいろな方がQiita等で説明されていると思いますので、ここでは、実際に対応が必要だったポイントを残しておきたいと思います。

## 対象
・同じくRailsのアップグレードと戦うのエンジニアの方
・アップグレードしないとダメだよねー。と思いつつも、華麗にスルーされている方

## 手順
基本的な進め方は「[Rails アップグレードガイド](https://railsguides.jp/upgrading_ruby_on_rails.html “Rails アップグレードガイド”)」をそのまま参考にさせて頂きました。
結果、問題なくアップグレードでき、本番環境へリリース出来ましたので、

元記事を表示

Rails初心者がActiveStorage-S3 Variantについて調べてみた

## この記事について

以前に ActiveStorage-S3のダイレクトアップロード関連調査時に、ついでに調べた ActiveStorage の Variant 挙動についてまとめました。
特に、S3へのファイル保存時にどうしても任意のprefixをつけたかったので、その点を中心に調査を行いました。
初心者なので本当にそれでいいかはわからないですが、とりあえず意図したprefixをつける方法を見つけたので、記録に残します。

https://qiita.com/zagvym/items/a4f0524c94007317ac95

### 調査時環境

– Rails ~> v6.1
– ruby ~> v3.0
– aws-sdk-s3 >= v1.112,

元記事を表示

Rails初心者がActiveStorage-S3について調べてみた

## この記事について

[Rails Active Storage](https://guides.rubyonrails.org/v6.1/active_storage_overview.html) のストレージサービスとして AWS S3 を設定する場合の仕様や挙動確認の記録です。
特に、署名付きURLを利用したS3へのダイレクトアップロードとその関連部を中心に調査を実施しました。

調査の結果、S3へのファイル設置に癖があったため、その挙動の詳細と対応策についても記載します。

### 調査時環境

– Rails ~> v6.1
– ruby ~> v3.0
– aws-sdk-s3 >= v1.112,

元記事を表示

RailsのMongoidのモデルをCSVに出力する

以下のコードの変数modelsに出力したいモデルを設定して保存します。
rails runnerで第1引数に出力先ディレクトリを設定して実行してください。

“`ruby
# CSVに出力したいモデルを指定してください
models = [Model1, Model2, Model3]

# スクリプト実行時、第1引数に出力先ディレクトリを指定してください
dir = ARGV[0]

models.each do |model|
file = “#{model.to_s.pluralize.underscore}.csv”

CSV.open(File.join(dir, file), “wb”) do |csv|
fields = model.fields.map {|f| f[0]}.sort
csv << fields model.each do |row| values = fields.map {|f| row[f]} csv << values end end end ``` # 環境 動作確認に

元記事を表示

rails createアクションとは

# 結論
モデルのインスタンス生成と同時にデータベースに保存するメソッドのこと。
“`.rb
def create
モデルクラス名.create(引数)# 引数はハッシュ{}は省略可
end
“`
以上です。

元記事を表示

【Rails】MySQLのJSON型カラムをActiveRecordで扱う際の注意点

# はじめに
MySQL 5.7からJSON型カラムを扱えるようになりました。
この記事ではActiveRecordでJSON型カラムを扱う際に引っかかったポイントを3つまとめています。

## 実行環境
Rails 6.1.3.1
MySQL 8.0.28

## テーブル定義
記事で示すサンプルコードは、次のように定義したUserモデルを用いて実行しています。
“`ruby
# db/schema.rb
create_table “users”, charset: “utf8mb3”, force: :cascade do |t|
t.string “name”
t.json “profile”
end
“`

# 1. 保存時に`to_json`は不要
JSON型カラムにはハッシュや配列をそのまま渡します。
“`ruby
User.create(
name: ‘サンプルユーザー1’,
profile: {
age: 20,
hometown: ‘東京’
}
)
=> #

元記事を表示

【独学+職業訓練】実務未経験からたった一年半でバックエンドエンジニアとして医療系自社開発企業に転職したお話

# はじめに
こんにちは。ゆうと申します。

今回の記事を書くにあたりまして前置きとして、決して、「この通りにやれば効率よく転職できる!」みたいな感じのスマートなものではなく、「泥臭くもがき、苦しんだ記録」として記しています。ですので、時には反面教師にしつつ、参考にできる部分がございましたら参考にしていただくといった形でお読みいただければ幸いだと思っております。

今回はこれからプログラマー/エンジニアとしてWeb企業へ転職を目指されている方を応援するため、私自身、知識ゼロの状態から学習をスタートし転職するまでの過程を踏まえたロードマップを共有します。

# 自己紹介

・年齢:26歳
・学歴:私立理系大学中退
・職歴:電話営業(契約社員を1年間)→テレアポスタッフ(アルバイト)
・プログラミング経験:一切なし

大学4年生の途中で休学して訪問営業の仕事をしていて、復学して研究(物理化学分野)を続けるか、興味のあった医薬の分野を0から学び直すかどうかで悩んだ挙句、はじめは薬学部を目指していましたが、勉強を進める中で医学の分野にも興味を持つようになり、医学部再受験を志して半年ほど受

元記事を表示

【初心者用】Ruby on Railsでrails db:migrateできない

# 1. はじめに
– [「現場で使える Ruby on Rails 5速習実践ガイド」](https://www.amazon.co.jp/%E7%8F%BE%E5%A0%B4%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8B-Ruby-Rails-5%E9%80%9F%E7%BF%92%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89-%E5%A4%A7%E5%A0%B4%E5%AF%A7%E5%AD%90/dp/4839962227)を2年程前に購入して、全く手を付けて行かなかった。
– 今回エンジニア転職をするに当たって、再度Ruby on Railsを勉強することになったので、学習を初めてみた。

# 2. はまったこと
– RubyとRuby on Railsの環境構築を行った上で、「Chapter2-6:Railsに触れてみよう」の「2-6 1:実際にアプリケーションを動かしてみよう」を試してみたところ、“`cannot load such file“`と表示された。
“`ruby:terminal
$

元記事を表示

バージョン指定してRails6環境を構築する方法

バージョン指定してRails6環境を構築する方法

Gemfile
“`Gemfile
source “https://rubygems.org”
gem ‘rails’, ‘~> 6.0’
“`

ターミナルから下記コマンドを実行
“`
$ bundle install
$ gem install -v 6.0.4.7 rails
$ rails new .
“`

元記事を表示

【Rails】checkboxのデザインを変更

## やりたいこと

checkboxのデザインを変更したい。

checkボックスの大きさや、位置は以下のように変更することはできる。

“`scss
input[type=checkbox] {
witdth: 20px
}
“`

しかし、checkboxの枠の色とか、チェックした後の背景色など、細部のデザインを変更する方法にハマったので備忘録としてメモします。

## 方法

①デフォルトのデザインを消す
②labelを使って擬似的なcheckboxを作る
③labelのforにid指定をする
④check 後のデザインを作成する

## ①デフォルトのデザインを消す

以下を追加するだけ
“`scss
input {
display: none;
}
“`

## ②labelを使って擬似的なcheckboxを作る

以下のように <%=check_box // %>と隣接するようにlabelを設置する。
このlabelが後々、checkbox のデザインになっていきます。
“`html.erb

<%= check_box

元記事を表示

Railsのrails-reactを使っての実装から、フロントエンドだけを分離してReact Hooksで作った話

記事は移動しました

[Railsのrails-reactを使っての実装から、フロントエンドだけを分離してReact Hooksで作った話](frontend-code-separate-from-rails-to-react)

元記事を表示

【Rails】RSpecマッチャー一覧

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

## RSpecマッチャー一覧

“`:マッチャー一覧

マッチャー名 機能
———————————————————————–
be_valid 有効であるか
———————————————————————–
be_invalid 無効であるか
——————————————————————–

元記事を表示

Dockerで同じコンテナを複数起動(Rails x Nuxt.js)

## やりたいこと
Nuxt.jsのコンテナを2つ起動したときの備忘録
## やること

docker-compose.ymlのポート編集
ポートに範囲をもたせる

“`
ports:
– – 8080:8080
+ – 8080-8081:8080
“`

cors.rb編集
“`
Rails.application.config.middleware.insert_before 0, Rack::Cors do

– origins ‘http://localhost:8080’
+ origins ‘http://localhost:8080’, ‘http://localhost:8081’

“`

–scaleオプションで起動したいサービス名の数を指定
“`
docker-compose up –scale front=2  –build
“`

これで無事2つ起動できた

元記事を表示

【Docker】failed to solve: failed to compute cache key: “/Gemfile” not found: not foundの対処方法

症状

RailsのImageをpullして、docker-compose runを実施しようとしたとき、下記のエラーメッセージが表示されました。
下記のサイトの手順で実施。

https://docs.docker.jp/compose/install.html

翻訳すると、「キャッシュキーの計算に失敗しました: “/ Gemfile”が見つかりません:見つかりません」でした。
Gemfileが見つからない。といっていますね

“`terminal:error
docker-compose run web rails new . –force –database=postgresql
[+] Running 1/0
– Container dockerapp-db-1 Created 0.0s
[+] Running 1/1
– Container dockerapp-db-1 Started

元記事を表示

OTHERカテゴリの最新記事