- 1. 既存のDocker環境(rails7-on-docker)をDevContainer化した話
- 2. railsの部分テンプレート描写について
- 3. 【React導入】既存のRailsアプリにReactを導入する
- 4. i18nの設定がconfig.i18nにまとまってconfig.action_viewは非推奨となった
- 5. [Rails] Rspec_uninitialized constantになったら、described_classを見直す!?
- 6. railsでアプリケーション情報の表示するコマンド
- 7. Rails: パーシャルに渡す変数は、なるべく少ない方がいいというレビューを受けた話(haml記法)
- 8. Railsアプリケーションをサブディレクトリで公開する方法
- 9. swiperの導入を整理してみた
- 10. DaisyUIのコンパイルで苦戦した話[Rails7]
- 11. ローカルからRenderにデプロイする際出やすいエラーについて
- 12. Railsでポリモーフィック関連付けを使用した柔軟なモデル関連付けの実装」
- 13. 【Rails】You need to supply at least one validation エラーが発生したら
- 14. 【ActiveRecord】length vs size
- 15. [Rails] rspec_{ } と () の使い方
- 16. Railsで共通パーツの一部をページごとに変更する方法
- 17. Build mysql2 for Rails error: ld: library not found for -lzstd
- 18. 【個人開発】服用管理をする介護者向けのアプリ「medicine-checker」を開発しました【Rails】
- 19. ラジオボタンの由来、ウェブ関係あるの?
- 20. 【Rails】bundle installでGemのインストールはしているのにコンテナやEB環境で認識されない時の対処法
既存のDocker環境(rails7-on-docker)をDevContainer化した話
# 結論
rails7-on-docker環境の`compose.yaml`を使用してDevContainer環境を構築するのがおすすめ!# 環境
* VScode
* [rails7-on-docker](https://github.com/ryanwi/rails7-on-docker)環境の準備が整っていること
* 他環境のDevContainer化でも参考になると思いますが、記事自体はrails7-on-railsについて言及しています。
* `rails7-on-docker`は、docker環境にrails7、postgresql、RSpecなどが入っています。いちいちrubyをインストールしたりだとかをしなくていいので便利です。
* もし環境準備がまだであればこちらの記事がおすすめです:[Windows WSL Docker Rails7 環境構築](https://qiita.com/mt-blue-sou/items/47e76c37eebf5ad7e603)# dovcontainer化する手順
VScode公式のDEV
railsの部分テンプレート描写について
# はじめに
railsで、部分テンプレートとしてパーシャルを利用しています。
しかし、使いすぎると描写に時間が掛かったりとデメリット部分もあり、使いどころに迷うケースがあります。
今回、そのパーシャルの利用方法が初見だったので、備忘録として残しました。# やりたかったこと
スケルトンローダーの画面を作成したかった
![l_6814799_128_cc8998bdb47074590d3c2505975a7e2d.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3632357/c3ef4dcd-a68b-228b-9077-248e1013b516.png)スケルトンローダーに関しては、こちらが分かりやすいかもしれません
https://marron-web.site/blog/cdad43/
# 作成
“`css:css
.one_comment {
display: flex;
animation: pulse 2s cubic-bezier(.4,0,.6,1) infinite
【React導入】既存のRailsアプリにReactを導入する
## はじめに
この記事では、既存のRailsアプリにReactを導入する方法についてまとめています。環境構築段階からReactを導入する方法についての記事は多いですが、途中からReactを導入する記事は少ないため、私自身かなり苦労しました。同じように苦戦している方の助けになれば幸いです。
https://ja.react.dev/
## 環境/前提
– Ruby 3.2.3
– rails 7.1.3.4
– TaiwindCSS使用
– Docker環境
– 「**esbuild**」で開発を行っていること
– バックエンド(ruby、rails)のみで環境構築していること## Webpackerについて
以前は「Webpacker」を使用するのが一般的でしたが、最近では「Import Maps」や「esbuild」、「Vite」などの新しいツールが推奨されています。Webpackerは廃止されたわけではないですが、公式では使わない方向にシフトしています。この点を押さえておくと良いでしょう。
既存のRailsアプリにReactを導入するための記事が少なく、ChatG
i18nの設定がconfig.i18nにまとまってconfig.action_viewは非推奨となった
Rails6からRails7へアップデートした時に、このような警告が出るようになりました。
“`zsh:
DEPRECATION WARNING: action_view.raise_on_missing_translations is deprecated and will be removed in Rails 7.0. Set i18n.raise_on_missing_translations instead. Note that this new setting also affects how missing translations are handled in controllers.
“`警告の内容は、i18n(国際化)の設定を`config.i18n`にまとめたため、今まで使用していた`config.action_view`の方は非推奨になるというものです。
環境設定の中でi18nの設定をしている場合は、このように変更すると警告が出ななります
。“`diff_ruby
– config.action_view.raise_on_missing_tr
[Rails] Rspec_uninitialized constantになったら、described_classを見直す!?
# はじめに
先日、以下の現象が起きました。・・・
今回の`rspec`の内容です。
– `describe`に`it`ブロックを複数定義
– `subject`で、インスタンスを作成する処理をしている
– そのインスタンスが返す値をテストしている“`rb
RSpec.describe ‘PostShortcode’ do
subject { TestPost::Shortcode::PostShortcode.new(params) }…
it ‘hoge’ do
expect(subject.hoge).to eq ‘hoge’
endit ‘fuga’ do
expect(subject.fuga).to eq ‘fuga’
end
“`上記で実行すると、なぜか**2回目以降**の`it`の時に、`NameError: uninitialized constant`が発生します。
“`sh
NameError:
uninitialized constant TestPost::Shortco
railsでアプリケーション情報の表示するコマンド
## はじめに
あれ?このシステムのrailsのバージョンってなんだっけってことよくありますよね。
Gemfileを見れば分かりますが、わざわざファイルを見に行かなくてもrails,rubyのバージョンを知ることができるコマンドを見つけました。## アプリケーション情報の表示するコマンド
rails aboutというコマンドを打つだけでrails,rubyのバージョンを知ることができます。
開発メンバーで同じ環境を使えているか確認する際などに使えそうですね。
“`sh
$ rails aboutAbout your application’s environment
Rails version 7.1.3.3
Ruby version ruby 3.3.1 (2024-04-23 revision c56cd86388) [x86_64-linux]
RubyGems version 3.5.9
Rack version 3.0.11
Middleware ActionDispatch::HostAuthorization
Rails: パーシャルに渡す変数は、なるべく少ない方がいいというレビューを受けた話(haml記法)
## 読んで欲しい人
– モデルにアソシエーションがあるのに、パーシャルに渡す変数を複数個にしてる方へ
– 過去の自分## 動作環境
– ruby 3.3.0
– Rails 7.1.3.3## 前提
作っているもの
– ポスト詳細画面に表示する、コメント一覧のパーシャル## レビュー内容とコード
### レビュー内容
“`diff
– = render ‘posts/comments’, comments: @comments, post: @post
+ = render ‘posts/comments’, comments: @comments
“`
コメント– モデル同士がお互いを知っているのであれば、渡す変数は1つの方がいい
### コード構成と内容
モデル:postとcommentは、1対多の関係性
“`post.rb
has_many :posts, dependent: :destroy
“`“`comment.rb
belongs_to :post
“`コントローラ
“`posts_controlle
Railsアプリケーションをサブディレクトリで公開する方法
[株式会社TECH LUCK](https://techluck.co.jp/?utm_source=qiita&utm_medium=article&utm_campaign=myarticle)という会社で代表兼エンジニアをしている齊藤です。
表題の通りですが、Railsアプリケーションで `example.com/ec-site` というようなサブディレクトリの形でRailsアプリケーションをリリースしたい時の設定になります。
環境は以下の通りです。
– Nginx
– Ruby on Rails:v7.1
– Ruby:3.2
– puma:::note warn
この記事では便宜的にドメイン名を`example.com`、アプリケーション名を`ec-site`という名前にしています。
:::# Nginxの設定
Nginxのファイルを以下のように設定してください。
ただし、`example.com`と`ec-site`に関しては、ご自身の環境に合わせて変更してください。“`nginx:rails.conf
client_max_body_size 2G;
swiperの導入を整理してみた
## はじめに
Swiperの公式ドキュメントをみてみてもいまいち「?」だったため、GPTやほかのサイトを回ってみて私なりにまとめたものをお伝えしたいと思います。https://swiperjs.com/get-started
## Swiper名前の由来
読んで字のごとく、「Swipe」からきています。
日本語に訳すと「指でなぞる」。スマートフォンやタブレットでのスワイプ操作を前提に設計されているため、この名前が付けられたと考えられています。![スワイプ.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3777936/06582699-c5a7-9889-7c97-955e88a0f67d.jpeg)
## Swiperとは
スライドショーが作れるJavaScriptのプラグインです。
他にスライドショーが作れるプラグインには「slick」があります。
slickはjQueryに依存するプラグインですが、SwiperはjQueryに依存しないプラグインなので、SwiperはjQueryを読み
DaisyUIのコンパイルで苦戦した話[Rails7]
# はじめに
初めまして、現在プログラミングスクールにてRuby on Railsをメインに学習しているikedaと申します。
アプリ制作時にプリコンパイルを忘れて苦戦したのでその備忘録としてまとめようと思います。
初めて記事を書くのでお手柔らかにお願いします。# 使用技術
Rails 7.0.8.1
Ruby 3.1.2
docker
Tailwindcss
DaisyUI# [daisyUI](https://daisyui.com/?lang=jp)とは何か
Tailwind CSSをベースとしたコンポーネントライブラリで、わかりやすく言うとTailwind CSSを更に使いやすくするためのもの
### [Tailwind css](https://tailwindcss.com/)とは
ユーティリティファーストのCSSフレームワークのこと# やりたかったこと
daisyUIのコンポーネントにあるチェックボックスを導入したかった。# 問題
daisyUIのコンポーネントのチェックボックスを導入したら色が反映されなかった。
# 試したこと
`docker co
ローカルからRenderにデプロイする際出やすいエラーについて
### はじめに
今回はローカルでrailsで環境構築した後、Renderにてデプロイする際によく起きるエラーと対処法を備忘録としてまとめてみます## 事象
ローカル環境でrailsチュートリアルを学習中、1章で最初のデプロイをRenderにする際にエラーが発生## エラー内容
“`
`validate_platforms!’: Your bundle only supports platforms [“x64-mingw-ucrt”]
but your local platform is x86_64-linux. Add the current platform to the lockfile
with (Bundler::ProductionError)
“`## 原因
bundlerが実行できるプラットフォームが制限されている。ローカルでRailsアプリを作成すると、bundlerが実行できるプラットフォームはRailsを実行した環境OSのみとなるらしい。今回はWindowsでbundle installしたためWindowsOSのみの環境になっている。その
Railsでポリモーフィック関連付けを使用した柔軟なモデル関連付けの実装」
## はじめに
アプリ制作の過程で、ポリモーフィック関連を用いた実装を行いました。ここではその実装過程で得られた気づきをまとめます。ポリモーフィック関連について実際の例を交えながらなるべく分かりやすくまとめたいと思います。## なぜポリモーフィック関連付けが便利なのか
例えば、ブログ記事にコメントを付ける機能を作ったとします。その後、イベントページにもコメントを付けたくなったとします。通常であれば、新しくコードを書き足さないといけないと思います。しかし、ポリモーフィック関連付けを使うと、既存のコードをほとんど変更せずに、イベントにもコメントを付けられるようになります。
それでは、実際にコードを見ていきましょう。## モデルの設定
まず、モデルの設定から。`Article`、`Event`、`Comment`の3つのモデルを作ります。
“`ruby
class Article < ApplicationRecord has_many :comments, as: :commentable end class Event < ApplicationRecord has
【Rails】You need to supply at least one validation エラーが発生したら
## 概要
Rails アプリでフォームデータを送信するとき、以下のようなエラーが発生しました。
“`
You need to supply at least one validation
“`## 原因
このエラーは以下のように `validates` メソッドにバリデーションの内容が指定されないと発生します。
“`rb
class Profile < ApplicationRecord validates :user_id end ``` ## 対処法 このエラーを解決するためには `validates` メソッドに適切なバリデーションを指定します。例えば `user_id` が一意であることを検証するために `uniqueness: true` オプションを指定できます。以下のようにすると、エラーは解消されます。 ```rb class Profile < ApplicationRecord validates :user_id, uniqueness: true end ``` ## まとめ `validates` メソッドを使用する際は、バ
【ActiveRecord】length vs size
# 目的
**ActiveRecord**の`length`と`size`について、しっかり理解した上で適切に使いこなせるようにする。
#### 補足
本記事は、レコード数の取得においてSQL文の発行数を抑えることの出来る`length`と`size`にフォーカスしています。
※`count`メソッドは、必ずSQL文を発行するため割愛(比較用で一部記載あり)# ActiveRecordのlengthとsizeの違い
## `#size`
https://github.com/rails/rails/blob/main/activerecord/lib/active_record/relation.rb#L345-L352
“`rb:rails/activerecord/lib/active_record/relation.rb
# Returns size of the records.
def size
if loaded?
records.length
else
count(:all)
end
end
“`
:::note
– Loadされて
[Rails] rspec_{ } と () の使い方
# はじめに
rspecでテストを実装していて、以下の箇所で詰まりました…。“`rb
# NG
expect(subject).to raise_error(RuntimeError, ‘testだよ’)# RuntimeError:
# testだよ# OK
expect{ subject }.to raise_error(RuntimeError, ‘testだよ’)
“``{}`と`()`の違いだけなのに、テストが成功するか変わりました。
挙動が違うと思い、調べた内容をアウトプットいたします。# `( )`
仮に、上記のコードで例を挙げます。– `subject`を評価され、`subject`の結果を`expect`メソッドに渡します
– なので、`subject`を実行した内容で例外があれば、そこで処理が止まります
– テストもエラーになります流れの結果として、どんな値が返ってきたのかをテストするには、すごく向いています。
# `{ }`
`{…}`で記載したコードは、コードブロックとして評価され、「後で実行される」ことを
Railsで共通パーツの一部をページごとに変更する方法
## はじめに
アプリ制作の過程で、ヘッダーの一部を特定のページで戻るボタンに変更するという実装を行いました。
ここではその実装過程で得られた気づきをまとめます。## 本記事の内容
Railsで共通パーツとして使っているものの一部分を特定のページで変更する方法。## ヘッダーのView
“`ruby:_header.html.erbOTHERカテゴリの最新記事
- 2024.09.19
JavaScript関連のことを調べてみた
- 2024.09.19
JAVA関連のことを調べてみた
- 2024.09.19
iOS関連のことを調べてみた
- 2024.09.19
Rails関連のことを調べてみた
- 2024.09.19
Lambda関連のことを調べてみた
- 2024.09.19
Python関連のことを調べてみた