- 1. Railsで作られたWebサービスをElasticBeanstalkからECS on Fargateに移行した話し(全体概要)
- 2. (未経験)技術士1次試験の過去問演習アプリつくった [Rails API + Next.js]
- 3. LiveViewとRails HotWireの比較
- 4. 【Ruby on Rails】No route matches [GET] “/logout”
- 5. Draperの使い方:モデルがファットにならないようデコレーターを活用する
- 6. stimulusを用いてテーブルのtdタグ全体をリンクにする方法
- 7. 【Rails】動的にDBのテーブルにカラムを追加してみる
- 8. rubyXLのエクセル出力で部屋に属する所属毎にシートを分けてusersを書き込んでいく
- 9. Rails APIエンドポイントの作成:基本操作
- 10. rails g model と rails g migration の違い
- 11. ActiveHashの初期値を設定したらエラーメッセージが出てこなかった件
- 12. bootstrapのダウンロードの仕方
- 13. 【Rails】選択画像のプレビューを動的に表示させる
- 14. i18nによる日本語化対応【Rails】
- 15. Next.js(AppRouter)×RailsのAWS実行環境を、SSRを考慮して構築する【Terraform】
- 16. 【rails】Rspecおける基本事項まとめ
- 17. Railsで作ったシステムのER図を日本語で出してほしいと言われたときにやったこと
- 18. Rails DBのカラム名の変更方法
- 19. 【Rails】デプロイ時にロードバランサーのタイムアウト値をカスタムするのだ
- 20. 【Ruby on Rails】コンテナ内部でrailsコマンド実行したら、bash: rails: コマンドが見つかりません
Railsで作られたWebサービスをElasticBeanstalkからECS on Fargateに移行した話し(全体概要)
# はじめに
医療系クラウドサービスを提供しているレイヤードという会社で働いています。弊社で提供しているWeb問診システムSymviewはRuby on Railsに構築しており、2017年からElasticBeanstalk(以下EB)を利用してオーケストレーション及びDeploymentを管理しておりました。
EBの機能的にはそれなりに満足していたし、長年使っていて運用ノウハウも溜まっていたのですが、主に下記に記載の理由からECSに乗り換えることにしました。:::note warn
本記事では完成形の移行にフォーカスして書いております。
アーキテクチャの選定や実装の試行錯誤、設定等の細かい話しは省いていますのでご了承ください。
:::## 課題
– EBがサポートする **プラットフォームの更新が遅く、最新バージョンのRubyをなかなか利用出来ない**
– オートスケールやデプロイ時のEC2のプロビジョニングでライブラリのインストールが毎回実施されるため、ライブラリの配布サイトの状態(サイトダウン等)によってはダウンロード失敗等でプロビジョニングエラーが発生する
(未経験)技術士1次試験の過去問演習アプリつくった [Rails API + Next.js]
## はじめに
はじめまして!
エンジニア転職を目指してプログラミングスクール[RUNTEQ](https://runteq.jp/)で学習中の[けーちゃん](https://twitter.com/mimi048599)と申します。
2023年1月より、**完全未経験**から**Ruby on Rails**を中心に学習し、この度、ポートフォリオとして「[技術士1次試験 基礎•適正科目 過去問ドリル](https://www.proengineer1exam.com/)」をリリースしたので、ご紹介させていただきます!https://www.proengineer1exam.com/
## 注意事項
:::note warn
私はプログラミング学習中で、**初学者**です。
内容に**誤り**がある場合があります。
コメント等で教えていただけると幸甚です。
:::## 作成したアプリ
アプリ名: [技術士1次試験 基礎•適正科目 過去問ドリル](https://www.proengineer1exam.com/)![opengraph-image.png](https
LiveViewとRails HotWireの比較
[piacere](https://twitter.com/piacere_ex) です、ご覧いただいてありがとございます :bow:
下記コラムで、Rails 7に標準搭載されたHotWireを試しましたが、Elixir/PhoniexのLiveViewと比較してみたいと思います
https://qiita.com/piacerex/items/b9cd99e2e051d24ce180
# 方式
## a)部分ページロード/レンダリング
### LiveView
– MorphJSによるDOMの部分更新
– LiveView StreamsによるDOMの部分追加/更新/削除### Rails
– Turbo Driveによるリンク操作のインターセプトとfetchへの置換、bodyタグ内のみの置換
– Turbo FramesによるDOMの部分更新
– Turbo StreamsによるDOMの部分追加/更新/削除## b)サーバサイドのデータ更新をフロントに反映
### LiveView
WebSocketによるPub/sub
### Rails
WebS
【Ruby on Rails】No route matches [GET] “/logout”
# 初めに
Rails7の環境でログアウト機能を実装していたときに、Rails5で書かれているProgateのプログラムで躓きました。
# 問題
ログアウト機能の実装でNo route matchesが起きました。
“`ruby
<%= link_to("ログアウト", "/logout", { method: "post" }) %>
“`# 解決方法
ルーティーンの設定は問題ありませんでした。記事を参考にlink_toメソッドを修正したら、ログアウト機能が動きました。
“`ruby
<%= link_to "ログアウト", "/logout", data:{ turbo_method: :post } %>
“`# 終わりに
バージョン違いによる仕様を理解できました。
Draperの使い方:モデルがファットにならないようデコレーターを活用する
## gem draperをインストールする
gemfileにgemを記載
“`
gem ‘draper’
“`bundle installする(下記はdocker使用の場合)
“`
docker compose run web bundle install
“`
システムにデコレーター層を追加
“`
rails generate draper:install
“`
デコレーターのファイルを追加
“`
rails generate decorator ○○(モデル名)
“`## モデル名_decorator.rbにコードを書く
“`
lass UserDecorator < Draper::Decorator delegate_all def full_name "#{object.first_name} #{object.last_name}" end end ``` ## viewファイルに記述を加える ``` <%= current_user.decorate.full_name %>
“`※サーバーの再起動を忘れずに・・
stimulusを用いてテーブルのtdタグ全体をリンクにする方法
私は現在、未経験からのエンジニア転職に向けてプログラミングスクールで学習をしている、いしかわと申します。
現在PFを作成していますがテーブルを描写した際に、`stimulus`を用いてテーブルの子要素全体をリンクにした内容をアウトプットとしてこちらの記事にしました。
どなたかの参考になれば幸いです。:::note warn
プログラミング初学者なので、内容に誤り等ある可能性があります
誤りがありましたら教えてくださると幸いです
:::環境
ruby 3.2.2
rails on rails 7.0.8
stimulus 3.2.2
tailwindcss 3.3.6
daisyUI 3.9.6# 実装
<% @completed_requests.each_with_index do |request, index| %>
daisyUIの`tableクラス`を用いてテーブルを以下のように作成しています
“`html:HTML<%= index + 【Rails】動的にDBのテーブルにカラムを追加してみる
どうもこんにちは。
今回は、動的にDBのテーブルにカラムを追加する方法をメモしていきます。
# 動的にカラムを追加とは?
本来であれば、DBのテーブルにカラムを追加する場合には、以下のような手順を踏むと思います。
1. マイグレーションファイル生成
“`sh
rails g migration AddNewColumnToSample
“`2. マイグレーションファイル編集
“`ruby
class AddNewColumnToSample < ActiveRecord::Migration[7.0] def change # addcolumn :テーブル名, :カラム名, :データ型 add_column :samples, :new_column, :string end end ``` 3. マイグレーション実行 ```sh rails db:migrate ``` しかし、「custom_itemsテーブルにデータが登録された場合に、登録されたデータの名前でsamplesテーブルにカラムを追加したい」ということが出てきます。rubyXLのエクセル出力で部屋に属する所属毎にシートを分けてusersを書き込んでいく
## はじめに
開発で部屋に属する所属毎にシートを分けてエクセル出力する必要があり、ある程度実装ができたのでまとめる。
初学者やrubyXLでエクセル出力を実装しようとしている方々に少しでも参考にもなれば嬉しいのですが、
なんちゃってエンジニアによる自分のアウトプット用の投稿なので、よくないコードの書き方や、または分量的に省略している箇所もございますのでご了承をお願いします。
アドバイスがありましたらコメントを頂けますと幸いです。## 出力フロー
roomの詳細ページから出力し、roomに紐づいているユーザー(users)を所属毎(affiliations)にシートを分けて用意してあるエクセルファイルに書き込んで出力します。
usersは中間テーブルのroom_usersを経由して取得します。## テーブル構図
roomsテーブル(部屋)
|rooms|
|:–|
|id|
|name|affiliationsテーブル(所属)
|affiliations|
|:–|
|id|
|name|usersテーブル
|users|
|:–|
|id|
|name|
|afRails APIエンドポイントの作成:基本操作
## **はじめに**
この記事では、Railsを使用して基本的なAPIエンドポイント(POST、PUT、GET、DELETE)を作成する方法をメモっぽく記載しておきます。## **必要なもの**
– Ruby on Rails
– RESTful APIに関する基本的な理解## **ステップ 1: Railsのセットアップ**
まずは、新しいRailsプロジェクトを作成する。ターミナルで以下のコマンドを実行“`bash
rails new my_api_project –api
cd my_api_project
“`このコマンドにより、API専用のRailsプロジェクトが作成される。
## **ステップ 2: モデルの作成**
今回はブログの記事を管理するための`Article`モデルを作成します。次のコマンドを実行“`bash
rails generate model Article title:string body:text
rails db:migrate
“`## **ステップ 3: コントローラの設定**
`Articles`コントロrails g model と rails g migration の違い
# はじめに
`rails g model`と`rails g migration`の違いについて、なんとなくの理解しかできていなかったので備忘録としてまとめます。
# rails g modelとは
このコマンドは、新しいモデル(データベーステーブルの設計図)を作成します。モデルはデータベースのテーブルに対応し、アプリケーション内でのデータの取り扱いやロジックの管理に使用されます。
コマンドの記述方法は以下のようになります。
“`
$ rails g model モデル名 カラム名:データ型
“`
## 実行方法
例えば、以下のコマンドを実行すると、Userモデルに対応するデータベーステーブルを作成するマイグレーションファイルが生成されます。
“`
$ rails g model User name:string email:string
“`
続いて、このマイグレーションを実行して変更をデータベースに適用します。
“`
$ rails db:migrate
“`
# rails g migrationとは
このコマンドは、手動でマイグレーションファイルを生成します。主にActiveHashの初期値を設定したらエラーメッセージが出てこなかった件
# はじめに
プログラミング初心者ですので、、温かく見守って頂けると幸いです。
何か間違っていたらコメントお願いします。
# エラーメッセージが出てこない
[![Image from Gyazo](https://i.gyazo.com/47e4958e4b02fbe12628de441de857c8.png)](https://gyazo.com/47e4958e4b02fbe12628de441de857c8)
ActiveHashを使用した入力フォームの初期値に上記のような初期値を設定していましたが、そうするとエラーメッセージが出ないという状況に陥りました。
しかも、初期値ではエラーメッセージ出ないのに、普通に項目を選択して保存しようとすると、”Category can’t be blank”というエラーが、、、(選択してるのに、、、)# 解決
原因ははっきりしていませんが、修正した箇所としては、
idを0~から始めるのではなく1~から始めた。(上記の画像は修正後)
ビューのnew.html.erbの
**<%= f.collection_select(:category_ibootstrapのダウンロードの仕方
## gemをインストール
gemfileに以下を記載
“`
gem ‘bootstrap’, ‘~> 5.3.0’
“`bundle installする(コンテナ内で行う場合)
“`
docker compose run web bundle install
“`
## 共通ファイル作成
flashメッセージは複数のビューファイルで使うので、部分テンプレートにしておく。
views/shared/_flash.html.erb
“`
<% flash.each do |message_type, message| %>関連する記事
OTHERカテゴリの最新記事
- 2024.09.19
JavaScript関連のことを調べてみた
- 2024.09.19
JAVA関連のことを調べてみた
- 2024.09.19
iOS関連のことを調べてみた
- 2024.09.19
Rails関連のことを調べてみた
- 2024.09.19
Lambda関連のことを調べてみた
- 2024.09.19
Python関連のことを調べてみた