- 0.1. Amazon SES導入
- 0.2. gem shrineを使った画像ファイルのダイレクトアップロード・バックエンドアップロードについて
- 0.3. whereやorderをモデルのscopeで書く方法
- 0.4. Docker-compose.ymlの中身の詳細
- 0.5. Alpineコンテナの中でエイリアスを自動設定する
- 0.6. プロジェクトへテストコードを導入する(計画編)
- 0.7. [Rails]Webフォームからアップロードされたファイルデータについて
- 0.8. Bootstrap,CSSを使った一覧表示
- 0.9. Rails6 × Vue3 アプリ立ち上げ手順
- 0.10. 100日後くらいに個人開発するぞ!day001
- 1. タイトル
- 1.1. Enumが定義されたインスタンス変数を更新する
- 1.2. 【初学者】ログイン機構のまとめ【Webアプリ開発の道~その3~】
- 1.3. Rails 6/7にjQueryとBootstrap 5を入れる(その1)
- 1.4. カラムの合計値を出す方法
- 1.5. JavaScript BundlingとCSS Bundlingのしくみ
- 1.6. 【Rails】Slimでのifを利用する方法
- 1.7. 【Ruby】初心者がRuby on Railsをやる!
- 1.8. Railsでエラーメッセージ表示されない時の対処法
- 1.9. GemfileでグローバルインストールするGemを管理する
- 1.10. ?CircleCiで、Rails6のRspecのSYSTEMテストを実行する方法【Docker】
Amazon SES導入
開発しているアプリにAmazon SESを導入した話をまとめました。
Amazon SESは、Eメールを送信するサービスになります。## AmazonSESの設定
– リージョンは東京リージョンを選択
– https://aws.amazon.com/jp/blogs/news/amazon-ses-tokyo/
– 2020年に東京リージョンが開設した模様## ドメイン検証
検証済みの特定のドメインからであれば、任意のどのようなメールアドレスにでも送信できるようになるので、ドメインの検証を行う
– Domains
– Verify a New Domain
– Domainを入力
– 所持しているドメインを入力
– Generate DKIM Settingsにチェック

– DBにはファイル名とかメタデータだけ保存して、画像を表示するときに「画像が格納されてるパス(S3へのパスなど)」と「DBに保存されているファイル名」を使って呼び出すという構成がベーシック。DBにファイル名ではなく画像データを保存してしまうと、DBの容量が圧迫されるのでもちろ
whereやorderをモデルのscopeで書く方法
先日レビューで先輩エンジニアに教えてもらったことが勉強になったので備忘兼ねて投稿します。
whereやorderなどを使うときはモデルのscopeとして書くとスッキリするのと、使い回しもできて良いみたいです。## controllerに書く方法
今回は商品(products)テーブルで開発日(development_date)降順で並べるとします。
“`ruby:products_controller.rb
def index
@products = Product.order(development_date: :desc)
end
“`## modelのスコープとして書く方法
まずモデルに以下のようにscopeを定義します。
“`ruby:product.rb
scope: :development_order, -> { order(development_date: :desc) }
“`コントローラで呼び出します。
“`ruby:products_controller.rb
def index
@products = Product.d
Docker-compose.ymlの中身の詳細
# Docker-compose.ymlの中身の詳細
“`Docker-compose.yml
version: ‘3’
#dbとwebのサービスを定義
services:
db: #msql
image: mysql:8.0
command: –default-authentication-plugin=mysql_native_password #認証形式の設定8.0から
volumes:
– ./src/db/mysql_data:/var/lib/mysql #./src/db/mysql_data(ローカル)を/var/lib/mysql(docker)側に共有する設定(コンテナを作り直すたびにデータが消えてしまうが、これを設定しておけばローカルのデータを持ってこれる)
environment:
MYSQL_ROOT_PASSWORD: password #(環境変数でパスワードを指定)
web: #rails
build: . #ベースのイメージとしてDocker fileを参照する設定
Alpineコンテナの中でエイリアスを自動設定する
# はじめに
普段Railsを扱うことが多いのですが、他の方が作成したRails環境を触ったところRailsコマンドや、Rspecなどを実行するときに、最初に`bundle exec`をつけないと実行できなかったためかなりストレスに感じて、手入力でエイリアスを張っていましたがこれを自動化するにはどうすればよいのだろうと考え、できるようになったためまとめます。
# 問題
実際に動作していたRailsコンテナの中で起動時にエイリアスをはる設定をする障害になっていたのが
– Alpine Linuxを利用していた (.bashrcが存在しない)
– コンテナの中にはいるとrootユーザーではないユーザーでログインすることになる (/root以下をみることができない)というところでした。またbashコマンド自体は入っていないので、どうすればエイリアスを張ればよいのだろうという状況でした。
# 解決方法
`/env/profile`を用いてエイリアスを張ることでうまくいきました。
まず`.alias`を作成しました。この中にはエイリアスのコマンドを書いておきます。
“`.a
プロジェクトへテストコードを導入する(計画編)
## 今回話すこと
– [導入の経緯](https://qiita.com/iyore_eng/items/fdf57b817589383db661#導入の経緯)
– [Webアプリケーションにおけるテストとは](https://qiita.com/iyore_eng/items/fdf57b817589383db661#webアプリケーションにおけるテストとは)
– [何のためにテストをするか](https://qiita.com/iyore_eng/items/fdf57b817589383db661#何のためにテストをするか)
– [どういったものをテストするか?](ttps://qiita.com/iyore_eng/items/fdf57b817589383db661#どういったものをテストするか)
– [デメリットについて考える](https://qiita.com/iyore_eng/items/fdf57b817589383db661#デメリットについて考える)
– [使用する技術](https://qiita.com/iyore_eng/items/fdf57b817
[Rails]Webフォームからアップロードされたファイルデータについて
# 概要
Webフォームからアップロードされたファイルデータの扱いがよくわかっていないので、
文献を拾ってまとめた。
前提として、「file」というキーで、「PC内の/home/user/xxx.csv」という適当なCSVファイルがアップロードされたものとする。# 参考
– [ActionDispatch::Http::UploadedFile](https://api.rubyonrails.org/v6.0.2.2/classes/ActionDispatch/Http/UploadedFile.html)– [Tempfile](https://docs.ruby-lang.org/ja/latest/class/Tempfile.html)
→Fileクラスと同じように扱える。
スクリプト実行が終了したとき削除される。# まとめ
“`
# アップロードファイル情報
uploaded_file = params[:file]
→ActionDispatch::Http::UploadedFile型でアップロードしたファイルの情報が返ってくる。
以降、uploade
Bootstrap,CSSを使った一覧表示
この記事は学習中に実装した内容をアウトプットし、更に理解を深めるための記録用投稿になります。
投稿している内容と同じ箇所で躓いている方に少しでもお力添えできれば幸いです。## 実装した内容
ユーザーの詳細画面でユーザーの詳細内容、投稿した記事の一覧を4つ表示して折り返す内容になります。## 今までの考え
・今までHtml,Css,Ruby,Ruby on Railsの順番で学習を進めてきて、直近で学習していた課題ではCssを使わずにレイアウトをBootstrapだけを行い実装してきました。
そのこともあり、今回もBootstrapだけで行こうと進めていましたが思ったようなレイアウトにならず色々調べているとCssも並行して使えることを書いてある記事を見つけました。(今更何を言っているんだと思う方もいるかもしれませんが、初心者の脳内なのでどうかお許しください、、。)
そのことを踏まえて読んでいただけると嬉しいです。## 前提条件
・Bootstrap導入済み。(今回はBootstrap4です。)
## 参考ページ
自分のページを曝け出すのは恥ずかしくて大変恐れ多いですが
Rails6 × Vue3 アプリ立ち上げ手順
# 記事作成意図
ネット上にRails×Vue3の情報が少ない(Vue2ばっかり)のでまとめておきました。### Railsアプリを新規作成
“`
rails new -d mysql アプリ名
“`
### Vue用インストール
“`
yarn add vue@next
yarn add –dev vue-loader@next @vue/compiler-sfc
“`
### DB作成
“`
rails db:create
“`
### サーバが起動することを確認
“`
rails s
“`
### environment.jsを編集
“`config/webpack/environment.js
const { environment } = require(‘@rails/webpacker’)
const { VueLoaderPlugin } = require(‘vue-loader’)
const { DefinePlugin } = require(‘webpack’)environment.plugins.prepend(
‘Vu
100日後くらいに個人開発するぞ!day001
# まずはこれをやってみる!

https://prog-8.com/paths/rails
# 今日はHTMLに触れてみた!
“`
* 開始タグと終了タグ
*開始タグ 終了タグ
*
* 見出しをつける
*見出し
* hはheadingの頭文字
*,
,
,,,
,,,と数字が大きくなるについれて見出しは小さくなる
* 段落をつける
*タイトル
Enumが定義されたインスタンス変数を更新する
仕事のコードを読んでいたところ次の記述に遭遇しました。
“`ruby:sample.rb
(~)? (モデル).accept! : (モデル).refuse!
“`
(~)が真ならば(モデル).accept!、偽ならば(モデル).refuse!を実行するという記述です。「ほう、`accept!`なんてメソッドがあるのか」と思い調べましたが、何も出てきません。
そこでコードに戻ったところ次の記述がありました。
“`ruby:models/sample.rb
enum status: { refuse: 0, accept: 1 }
“`
「`enum`は属性に対応する値をDBに保存するんだったよな…」Railsガイドには次の記述がありました。
https://railsguides.jp/active_record_querying.html#enum
> 以下の!付きインスタンスメソッドは自動で作成されます。最初にstatusの値を更新し、次にstatusがその値に設定されたかどうかをtrue/falseで返します。
“`ruby:railsguide.rb
【初学者】ログイン機構のまとめ【Webアプリ開発の道~その3~】
# はじめに
こんにちは。しばらく投稿の間が空いてしまいました…。
言い訳をしておきますと、(また後で記事にできたらいいなと思っているのですが…)「要件定義」や「基本設計」について、深掘りして勉強しながら、実際にオリジナルアプリの設計をしていたからです。
暫定的な成果物はできたのですが、おそらく、アプリ開発の中で、見直しされていくと思いますので、最終的にアプリが形になってから、記事にしたいと思います。今回は、どのWebアプリでも必ず実装するであろう「ログイン機構」について、学んだことをまとめていきたいと思います。
# 何を書いたか
Ruby on rails チュートリアルの第8章、第9章の内容をベースに、自分なりに咀嚼したものを描いていきます。# なぜ書いたか
学習記録です。特に自分が理解しにくかった部分は、自分なりの解釈を加えています。(間違っている部分はご指摘いただけると幸いです。)# 本題
## 基本的なログイン機構
### ログインの基本的な仕組み
→ブラウザがログインしている状態を保持し、ユーザーによってブラウザが閉じられたら状態を破棄するといった仕組み
Rails 6/7にjQueryとBootstrap 5を入れる(その1)
RailsにjQueryとBootstrap 5を入れる方法を調べながら、Rails 7のCSSとJavaScriptの新機能を調べてみました。次のようなコードを動かすのが目標です。BootstrapのjQueryプラグインを使うものです。
“`javascript
$(‘[data-bs-toggle=”tooltip”]’).tooltip()
“`あるいは、次のようにjQueryプラグインを使わない方法でもよしとします。
“`javascript
$(‘[data-bs-toggle=”tooltip”]’).each((idx, elm) => {
new bootstrap.Tooltip(elm)
})
“`## Webpacker(Rails 6.1)
まず、Rails 7の新機能を使わず、Rails 6にWebpackerで導入する方法です。yarnでBootstrap 5、Popper 2、jQueryを入れます。
“`
% yarn add bootstrap @popperjs/core jquery
“`Bootstrap
カラムの合計値を出す方法
カラムの合計値を出す方法
controller↓
@任意の変数名 = テーブル名.all.sum(:合計を出したいカラム名)
JavaScript BundlingとCSS Bundlingのしくみ
Rails 5-6時代に使われた[Webpacker](https://github.com/rails/webpacker)は、公式に「has been retired」とされ、Rails 7では[importmap](https://github.com/rails/importmap-rails/)が標準となりました。
Rails7はimportmapとは別に、JavaScriptのバンドラやCSSのフレームワークを導入するしくみを用意しています。2つのgem、 [JavaScript Bundling(jsbundling-rails)](https://github.com/rails/jsbundling-rails) と [CSS Bundling(cssbundling-rails)](https://github.com/rails/cssbundling-rails) です。この2つは、Rails 6に入れることもできます。
## 概要
JavaScript Bundling は、JavaScriptのバンドラ(esbuildやwebpack)を使い、JSファ
【Rails】Slimでのifを利用する方法
# 初めに
Rails でポートフォリオを作成中に、条件によってクラスをつける方法を忘れてしまっていたので忘備録として残しておきます。
## 環境
Rails 7.0.2
Ruby 3.1.1
Slim 4.1.0# 本文
erb での後置 if の書き方は多くありましたが slim でのやり方が少なかったので記事にしておきます。
こちらは erb での書き方です。
“`erb: if.html.erb
<% if @result == true %>
<%= link_to "Topへ", words_path,{class:'btn-bule'} %>
<% end %>関連する記事
OTHERカテゴリの最新記事
- 2023.09.23
iOS関連のことを調べてみた2023年09月23日
- 2023.09.23
Python関連のことを調べてみた2023年09月23日
- 2023.09.23
Ruby関連のことを調べてみた2023年09月23日
- 2023.09.23
Rails関連のことを調べてみた2023年09月23日
- 2023.09.23
Python3関連のことを調べてみた2023年09月23日
- 2023.09.23
PHP関連のことを調べてみた2023年09月23日